您好试图动态创建此数组。这是静态方式:
var pieData = [
{
value: 300,
color:getRandomColor(),
highlight: getRandomColor(),
},
{
value: 50,
color: getRandomColor(),
highlight: "#fac878",
},
{
value: 100,
color: getRandomColor(),
highlight: getRandomColor(),
},
{
value: 120,
color: getRandomColor(),
highlight: getRandomColor(),
}
];
这就是我所取得的成就:
$.ajax({
method: "POST",
url: "getPieChartData"
})
.done(function(data){
obj = $.parseJSON(data);
var pieData = []; i = 0;
$.each(obj, function(key, item) {
pieData[i].value = item.total + " - " + item.d_name;
pieData[i].color = getRandomColor();
pieData[i].highlight = getRandomColor();
i++;
});
});
我从我的功能中获得的价值不是问题。我的问题是我在控制台中得到了这一部分:
pieData[i].value = item.total +" - " + item.d_name; TypeError: pieData[i] is undefined
我做错了什么? THX
答案 0 :(得分:3)
您可以简单地使用.push()
方法。不要使用索引器。
push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。
$.each(obj, function(key, item) {
pieData.push({
value: item.total + " - " + item.d_name,
color : getRandomColor(),
highlight : getRandomColor()
});
});
答案 1 :(得分:2)
您需要先创建pieData [i]对象;
switched off
答案 2 :(得分:1)
在pieData[i].value ..
之前,您应首先有一行:
pieData[i] = {};