大家好我正在尝试创建一个像这样的javascript对象:
data = { values:[
{ X: "Apples", Y: 120 },
{ X: "Oranges", Y: 280 },
{ X: "Chocolates", Y: 180 },
{ X: "Bananas", Y: 340 },
{ X: "Tomatoes", Y: 400 },
]};
我试过这个,但它不起作用?
var data = {};
for (i = 0; i < json.Answers.length; i++){
data.values[i].X = json.Answers[i].AnswerText
data.values[i].Y = json.Answers[i].Responses.length
}
json部分很好,有关构建对象的任何想法吗?
答案 0 :(得分:8)
首先,您尝试使用您从未定义的values
data
属性。变化
var data = {};
到
var data = {values: []};
创建values
数组。
此外,在你的循环中,你试图分配给不存在的对象。将循环的内容更改为:
data.values[i] = {
X: json.Answers[i].AnswerText,
Y: json.Answers[i].Responses.length
};
在构建它时创建values
数组中的每个对象。
所以:
var data = {values: []};
for (i = 0; i < json.Answers.length; i++){
data.values[i] = {
X: json.Answers[i].AnswerText,
Y: json.Answers[i].Responses.length
};
}
(附注:不要忘记声明i
,如果它尚未声明,以免你成为The Horror of Implicit Globals的牺牲品。)
答案 1 :(得分:1)
data
:data = {values: []};
答案 2 :(得分:1)
data.values = [];
for (i = 0; i < json.Answers.length; i++) {
data.values.push({X: json.Answers[i].AnswerText, Y: json.Answers[i].Responses.length});
}
答案 3 :(得分:1)
尝试:
var data = {values:[]};
for (i = 0; i < json.Answers.length; i++){
data.values[i]= {X: json.Answers[i].AnswerText, Y:json.Answers[i].Responses.length}
}