我在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 ..
有谁能告诉我这是什么?
答案 0 :(得分:1)
AHA! 感谢@beterraba和@jan dvorak鼓励我做一个小提琴
因此,我发现我已经宣布我的“拉”var不正确
我最初有这个:
var pulled = new Array();
而应该是这样的:
var pulled = new Object();
现在按预期工作
我也纳入了关于对象文字声明的@jan建议 只是为了好的措施!