以编程方式在javascript中创建json数组对象

时间:2014-05-08 09:56:51

标签: javascript json

我的代码是

var arr=[];
$.post( "/reports/search", { query:'*'},function(data) {
    for(var i=0;i<data.length;i++)
        {
            arr[i].value=data[i].name;
            arr[i].data=data[i].id;
        }

},'json');

我想创建一个json数组变量,我希望像下面那样重新启动

arr=[ {"value":"aaa",data:"1"},
      {"value":"bbb",data:"2"},
      {"value":"ccc",data:"3"}

]

如何在javascript中执行此操作

2 个答案:

答案 0 :(得分:3)

这适用于所有现代浏览器:

var arr = data.map(function(row){return {value: row.name, data: row.id});

在ES6中(解构和重命名):

var arr = data.map(({name: value, id: data}) => ({ value, data }))

答案 1 :(得分:1)

您需要先创建对象,然后才能分配其属性:

var arr=[];
$.post( "/reports/search", { query:'*'},function(data) {
    for(var i=0;i<data.length;i++)
        {
            arr[i] = {};
            arr[i].value=data[i].name;
            arr[i].data=data[i].id;
        }

},'json');

或者您可以使用对象文字一次完成所有3个步骤:

var arr=[];
$.post( "/reports/search", { query:'*'},function(data) {
    for(var i=0;i<data.length;i++)
        {
            arr[i] = {
                value: data[i].name,
                data: data[i].id
            };
        }

},'json');