JS对象中的怪异数据突变



我在JS中的数组数据正在发生烦人的事情。

这是代码的块:

console.log("------------pull-----------------");
// after all data is pulled
// then rebuild pData
cats.forEach(function (c) {
    console.log(c);
    pulled[i] = new Object();
    pulled[i].name = c;
    pulled[i].data = a[c];
    console.log(pulled[i].data);
    console.log(pulled[i]);
    console.log(pulled[i].data);
    pulled[i].color = colors[i++];
});

这是console.log()的结果:

------------pull-----------------<br/>
Calculated Percent Change<br/>
[-0.624921793534932, 0.1, 0.1, 0.1, 0.1, max: function, min: function, sum: function]<br/>
Object {name: "Calculated Percent Change", data: Array[5]}<br/>
color: "#75B5CD"<br/>
data: Array[5]<br/>
0: "277.8"<br/>
1: "-44.5"<br/>
2: "-44.5"<br/>
3: "-44.5"<br/>
4: "-44.5"<br/>
length: 5<br/>
__proto__: Array[0]<br/>
name: "Calculated Percent Change"<br/>
__proto__: Object<br/>
[-0.624921793534932, 0.1, 0.1, 0.1, 0.1, max: function, min: function, sum: function]<br/>

这里发生了什么?
我的初始数组是正确的。
但是,一旦我在对象中显示数组,
这些数字都是奇怪的。
我什至不知道如何计算这些数字,
但是随后我通过明确访问数组来进行另一个测试,这是正确的

预期的行为是对象中的数组与数组事先打印出线时具有与数组相同的值,即0:-0.624 ..

谁能告诉我这是怎么回事?

aha!谢谢@beterraba和@jan dvorak鼓励我做一个小提琴

因此我发现我宣布了我的"拉" var错误

我最初有这个:

    var pulled = new Array();

而是应该是这样的:

var pulled = new Object();

这现在按预期工作

我也合并了@jan关于对象文字声明的建议只是为了好的措施!

最新更新