javascript - for迴圈i問題
某草草
某草草 2017-05-19 10:45:58
0
6
734

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

說話很便宜,給我看代碼

伊谢尔伦

沒有發碼,是為了刷流氓

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板