Javascript – für Loopi-Problem
某草草
某草草 2017-05-19 10:45:58
0
6
713

Es gibt ein Array außerhalb der for-Schleife und ein Objekt innerhalb der for-Schleife. Jedes Mal, wenn die for-Schleife einen Attributwert des Objekts gleich dem entsprechenden i-Element des Arrays macht und das Objekt dann in das leere Array schiebt, Warum zeigen die leeren Arrays dasselbe an? Ja, es funktioniert nicht, selbst wenn ich das for mit einer Wortausführungsfunktion umschließe

某草草
某草草

Antworte allen(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());
}
洪涛

talk is cheap,show me the code

伊谢尔伦

did not send the code , is to brush rogue

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage