javascript - for循环i问题
某草草
某草草 2017-05-19 10:45:58
0
6
759

for循环外有一个数组,for循环内一个对象,每次for循环都让对象的一个属性值等于数组的对应i项然后在将这个对象push进空数组,为什么空数组后面展示出来的全一样的,我用字执行函数把for内包住也不行

某草草
某草草

全部回复(6)
为情所困

你说的新数组的后面都一样,是指的是数组里面元素都一样吗?应该是作用域问题,利用闭包应该能解决。

给我你的怀抱

你把循环体的那个对象push进空数组是在循环体内进行还是结束后 你所说的空数组里面的内容不是这个对象吗?

小葫芦
let obj={a:1};
let arr = [{a:1},{a:2},{a:3},{a:1,b:1}];
let arr2 =[];
for(let o of arr){
    if(o.a == obj.a){
        arr2.push(o);
    }
}
console.log(arr2);//arr2=[{a:1},{a:1,b:1}]

我猜楼主描述的功能应该是这样。这没有闭包问题。楼主可以把代码贴出来吗?

黄舟

我以前也遇到这种类型的问题,在将一个集合循环到的项push到一个数组中,最后发现数组里面的项都是一样的,原因不是很清楚,解决方法是先将循环到的项copy,然后在将这个copy得到的值push到数组中;

//此处只是随意举个例子
var a=[1,2,3,4,5,6];
var b=[];
for(let o of a)
{
    b.push(o.clone());
}
洪涛

说话很便宜,给我看代码

伊谢尔伦

没有发码,是为了刷流氓

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板