请有人解释一下我的代码有什么问题。我想要实现的是从水果数组创建一个数组(参见代码块),其中 array=[name: "Banana", name: "Orange", name: "Apple", name: "Mango"]
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)
}
但是,当我将数组打印到控制台时,我得到的是: [[对象对象] { 名称:《芒果》 }, [圆形对象对象], [圆形对象对象], [圆形对象对象]]
第一个对象已正确填充,但我不明白为什么它说其他对象存在循环依赖性。谁能帮我解释一下问题是什么以及我应该如何解决它。谢谢!
最佳答案
[name: "Banana", name: "Orange", name: "Apple", name: "Mango"]
不是有效的 JS 对象,您可以拥有:
[{name: "Banana"}, {name: "Orange"}, {name: "Apple}, {name: "Mango"}]
这是一个对象数组,循环执行:
function myFunction() {
var array=[];
fruits.forEach(function(entry) {
array.push({ name: entry });
});
console.log(array)
}
关于JavaScript 循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023779/