多种循环方式类比
- Object.assign:合并对象
- for ... in, for ... of
// for 循环
for ... in 是为遍历对象设计的,不适合遍历数组(遍历数组的时候会包含继承来的属性,是个缺陷)
for ... of 是用来遍历数组的,遍历对象会报错
// object.keys(); 获取到对象所有的键值
var obj = {'0':'a','1':'b','2':'c'};
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});
// 插播一条广告
obj.hasOwnProperty('name'): 判断对象是否包含特定的自身(非继承)属性。
-
判断一个参数是否是字符串或数组
function isString(param) { return Object.prototype.toString.call(param) == '[object String]' } function isArray(param) { return Object.prototype.toString.call(param) == '[object Array]' } -
总结
- forEach 里面不能使用 break 和 continue,否则会报错
- forEach 本身无法跳出循环, 必须遍历所有的数据
- forEach 和 map 中, return 和 continue一样, 退出本次循环
- map 返回新数组, forEach返回undefined;
- obj.hasOwnProperty('name'): 判断对象是否包含特定的自身(非继承)属性。
- Object.keys(obj) 获取对象所有的属性值,返回一个数组
\