forEach 是 ES5 中操作数组的一种方法,主要功能是遍历数组,其实说穿了,就是 for 循环的加强版,该语句需要一个回调函数,作为参数。回调函数的形参,依次为,value:遍历的数组内容;index:对应的数组索引,array:数组本身。
// 分别对应:数组元素,元素的索引,数组本身
var arr = [1,2,3];
arr.forEach((value,index,array){
console.log(value);
console.log(index);
console.log(array);
})
forEach使用需要注意的是
var arr1 = [1,2,3,4];
var arr2 = [{a:1},{a:2},{a:3}];
arr1.forEach(item =>{
item = item * item;
});
arr2.forEach(item =>{
item.a = item.a * item.a;
});
console.log(arr1); // [1,2,3,4]
console.log(arr2); // [{a:1},{a:4},{a:9}]
forEach 在对 item 进行修改的时候,如果 item 是原始类型的值,item 对应的 的内存地址实际并没有变化
如果 item 是 引用类型的值,item 对应多的内存地址也没有变化,但是对应的值,已经重写了