我想动态创建一个数组,其格式应为
var dat1 = [
{ x: 0, y: 32.07 },
{ x: 1, y: 37.69 },
{ x: 2, y: 529.49 },
{ x: 3, y: 125.49 },
{ x: 4, y: 59.04 }
];
我希望将数据中的所有内容动态存储到数组中。我从json数据中获取这些值。我希望数组采用这种格式。我该如何创建它?
我试过了:
$.each(r_data, function(key, val) {
data1.push([{
x : i,
y : parseFloat(val.something)
}]);
i++;
});
......但没有得到我想要的结果。
答案 0 :(得分:2)
假设你有
var data1 = [];
......可能
var i = 0;
...在您的代码之前,您的代码将生成此结构:
var data1 = [
[ { x: 0, y: 32.07 } ],
[ { x: 1, y: 37.69 } ],
[ { x: 2, y: 529.49 } ],
[ { x: 3, y: 125.49 } ],
[ { x: 4, y: 59.04 } ]
];
请注意您最终得到的数组,其中每个条目都是另一个数组,而该数组又包含具有x
和y
属性的对象。
我怀疑你想要:
var data1 = [];
var i = 0;
$.each(resultBar_data, function(key, value) {
data1.push({
x : i,
y : parseFloat(value.averagePrice)
});
i++;
});
...只是直接在data1
上推送对象,而不将它们包装在额外的数组中(注意我已经删除了被推送的[]
)。您可以访问以下条目:
console.log("The first entry is " + data1[0].x + "," + data1[0].y);
console.log("The second entry is " + data1[1].x + "," + data1[1].y);
答案 1 :(得分:0)
format是一个对象数组。在以下代码中,您尝试将数组 [{x:i, y:parseFloat(value.averagePrice)}]
推送到格式数组:
$.each(resultBar_data, function(key, value) {
format.push([{ /*array start*/
x : i,
y : parseFloat(value.averagePrice)
}] /*array end*/
);
i++;
});
记住方括号表示数组。
我认为应该解决你的问题:
/*i just removed the square brackets so that push now pushes an object,
not an array with a single object*/
format.push({
x : i,
y : parseFloat(value.averagePrice)
});
希望这有帮助,请询问您是否需要更多信息或我是否误解了您的问题!