js forEach修改不了数组,如何遍历数组并修改当前数组
arr[].forEach(function(item,index,array){})forEach没有返回值,并且传入的回调函数,遍历的是数组的每一项,并不能直接修改原数组,如“item=10”这样是修改不了原数组的。不过可以通过数组的索引修改原数组。var info=[1,2,3,4,5];info.forEach((item,index,arr)=>{arr[index]=10;});
·
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]
更多推荐
已为社区贡献3条内容
所有评论(0)