arr[].forEach(function(item,index,array){

})

forEach没有返回值,并且传入的回调函数,遍历的是数组的每一项,并不能直接修改原数组,如“item=10”这样是修改不了原数组的。不过可以通过数组的索引修改原数组。

var info=[1,2,3,4,5];
info.forEach((item,index,arr)=>{
    arr[index]=10;
});
console.log(info);

输出:[10, 10, 10, 10, 10]

如果这个数组的每一项是对象,那么就可以直接通过item修改:

var info=[{age:1},{age:2},{age:3},{age:4},{age:5}];
info.forEach((item,index,arr)=>{
    item.age=10;
    //不过这样也可以的:arr[index].age=10;
});
console.log(info);

输出:[{age:10},{age:10},{age:10},{age:10},{age:10}];

不过我一般是使用map函数,map的回调函数中支持return返回值,可以将修改的item数组每一项return返回,最后将map函数的返回值直接赋值给原数组:

var info=[1,2,3,4,5];
info=info.map((item,index,arr)=>{
    item=10;
    return item;
});
console.log(info);

输出:[10, 10, 10, 10, 10]

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐