suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – für Loopi-Problem

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

某草草某草草2778 Tage vor753

Antworte allen(6)Ich werde antworten

  • 为情所困

    为情所困2017-05-19 10:47:58

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

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:47:58

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

    Antwort
    0
  • 高洛峰

    高洛峰2017-05-19 10:47:58

    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}]

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

    Antwort
    0
  • 黄舟

    黄舟2017-05-19 10:47:58

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

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

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-19 10:47:58

    talk is cheap,show me the code

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:47:58

    did not send the code , is to brush rogue

    Antwort
    0
  • StornierenAntwort