2014-05-08 126 views
1
編程方式創建JSON數組對象

我的代碼是在JavaScript

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數組變量,我想resut像下面

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

] 

如何做到這一點在JavaScript

回答

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

它工作正常 – user1934044

+0

順便說一句。如果你需要更老的瀏覽器,只需做一個$ .map(data,function(row){...}); –

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');