【问题标题】:Javascript Circular DependencyJavascript循环依赖
【发布时间】:2015-10-08 18:54:56
【问题描述】:

请有人解释一下我的代码有什么问题。我想要实现的是从 fruits 数组创建一个数组(参见代码块),其中 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)

}

但是,当我将数组打印到控制台时,这就是我得到的: [[对象对象] { 名称:《芒果》 }, [圆形物体Object], [圆形物体Object], [圆形物体Object]]

第一个对象被正确填充,但我不明白为什么它说其他对象存在循环依赖。谁能帮我解释一下问题是什么以及我应该如何解决它。谢谢!

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    [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)
    }
    

    【讨论】:

    • 感谢您的帮助!
    【解决方案2】:

    您正在多次添加同一个对象。

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

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2021-10-02
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多