Javascript 创建对象数组

标签 javascript arrays javascript-objects

我对 Javascript 有点陌生。非常感谢有关以下问题的任何帮助或建议。

我想创建一个包含对象列表的数组。下面的代码总结了我的问题

{
    var Instrument = {};
    var InstrumentArray = new Array;
    var array = new Array;
    array[0] ="XYZ0";
    array[1] ="XYZ1";
    .
    .
    .
    array[n] ="XYZn" ;
    data1['Name'] = "X";
    data1['TypeString'] = "WatchList";
    data1['FileTypeString'] = "XLS";
    for (var i = 0; i < array.length; i++) {

        Instrument['Symbol'] = array[i];
        InstrumentArray.push(Instrument);
    }
    for(var j =0; j< InstrumentArray.length;j++)
     {
         console.log(InstrumentArray[j]);
     }

   }

当我通过 console.log 查看输出时,它显示了正确的值数量,但是 符号:它显示的值是我在本例中输入的最后一个“XYZn”。

我知道最后一个值会覆盖符号对象,但我可以通过它们获取所有存储的值。

提前致谢

最佳答案

这是因为数组 InstrumentArray 中的每个元素都是对同一对象 Instrument 的引用,并且您不断更改该对象的属性。代码中有很多需要改进的地方,但简短的答案是在循环内创建 Instrument

关于Javascript 创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9285623/

相关文章:

javascript - JavaScript 中的 == 和 === 有什么区别?

javascript - 如何使用 nextProps 值在 React componentWillReceiveProps 方法中编写整洁干净的代码

c++ - C++中的多维对象数组,我无法初始化它!

javascript - 当稍后再次设置派生对象的属性时,从基对象继承的属性会发生什么情况?

javascript - JavaScript 中有不同类型的数组吗?

javascript - Angularjs session 存储和范围

javascript - 我应该将 jQuery 文档包装在自执行函数中吗?

python - 在数组声明中生成值

将数组的地址转换为其他数据类型

javascript - React - 更新状态数组时对象中的唯一键被覆盖