我对 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/