简体   繁体   English

如何创建这样的JavaScript对象?

[英]How do I create a javascript object like this?

Hi guys I'm trying to create a javascript object like this: 嗨,大家好,我正在尝试创建一个JavaScript对象,如下所示:

data = { values:[
        { X: "Apples", Y: 120 },
        { X: "Oranges", Y: 280 },
        { X: "Chocolates", Y: 180 },
        { X: "Bananas", Y: 340 },
        { X: "Tomatoes", Y: 400 },
]};

I've tried this but it doesn't work? 我已经尝试过了,但是不行吗?

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
    }

The json part is fine, any ideas on constructiong the object? json部分很好,关于构造对象有什么想法吗?

First, you're trying to use a values property of data that you've never defined. 首先,您尝试使用从未定义的datavalues属性。 Change 更改

var data = {};

to

var data = {values: []};

That creates the values array. 这将创建values数组。

Also, in your loop you're trying to assign to objects that don't exist. 另外,在循环中,您尝试分配给不存在的对象。 Change the content of the loop to: 将循环的内容更改为:

data.values[i] = {
    X: json.Answers[i].AnswerText,
    Y: json.Answers[i].Responses.length
};

That creates each object that goes in the values array as you build it. 这将在创建对象时创建每个包含在values数组中的对象。

So: 所以:

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
    };
}

(Side note: Don't forget to declare i , if it's not already declared, lest you fall prey to The Horror of Implicit Globals .) (旁注:不要忘记声明i ,如果尚未声明的话,以免您沦为“隐性全球性恐怖”的猎物。)

请使用以下方法初始化data

data = {values: []};
data.values = [];

for (i = 0; i < json.Answers.length; i++) {
    data.values.push({X: json.Answers[i].AnswerText, Y: json.Answers[i].Responses.length});
}

Try: 尝试:

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}
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM