2015-10-08 261 views
0

請有人可以解釋我的代碼是什麼問題。我想要實現的是從fruits數組(參見代碼塊)創建一個數組,其中array = [name:「Banana」,名稱:「Orange」,名稱:「Apple」,名稱:「芒果」]Javascript循環依賴

var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
myFunction(fruits) 

function myFunction() { 
    var array=[]; 
    var item = {}; 
    fruits.forEach(function(entry, index){ 
    item.name=entry 

    array.push(item); 

}); 

console.log(array) 

} 

但是當我打印陣列控制檯,這是我得到: [目標對象] { 名稱:「芒果」 },[圓形物體對象],[圓形物體對象],[圓對象對象]]

第一個對象被正確填充,但我不明白爲什麼它說對其他對象存在循環依賴。任何人都可以請幫我解釋一下問題是什麼以及我應該如何解決它。謝謝!

回答

2

[name: "Banana", name: "Orange", name: "Apple", name: "Mango"]不是有效的JS對象,可以homever有:

[{name: "Banana"}, {name: "Orange"}, {name: "Apple}, {name: "Mango"}]是對象的數組,在一個循環做:

function myFunction() { 
    var array=[]; 

    fruits.forEach(function(entry) { 
    array.push({ name: entry }); 
    }); 

    console.log(array) 
} 
+0

感謝您的幫助! – kellzerIrl

2

您正在多次添加相同的對象。

function myFunction() { 
    var array=[]; 

    fruits.forEach(function(entry, index) { 
    var item = {}; 
    item.name=entry 

    array.push(item); 
    }); 

    console.log(array) 
} 
+0

感謝您的幫助! – kellzerIrl