簡體   English   中英

如何從json數組中獲取特定的值?

[英]how to get particular value from json array?

我有一個像newarr這樣的json數組名,如何從json數組中獲取所有id以及如何在arr值中添加?

 var arr=new Array();
 var newarr=new Array([
        {
            "id": 16820,
            "value": "abcd",
            "info": "Centre"
        },
        {
            "id": 18920,
            "value": "abcd-16820",
            "info": "Centre"
        },
        {
            "id": 1744,
            "value": "abcd-16820",
            "info": "Centre"
        },
        {
            "id": 16822,
            "value": "AaronsburgPA-16820",
            "info": "Centre"
        }
    ]);

應該這樣做:

for (var o in newarr){
    arr.push(newarr[o].id);
}

同樣,在構建數組對象時,您無需同時使用方括號和new Array ,而另一種則可以:

var myarray = new Array(1,2,3);

要么

var myarray = [1,2,3];

我嘗試使用jQuery,這是它的小提琴

$.each(newarr[0], function(k, v) {
    arr.push(v.id);
});
console.log(arr);

很簡單:

for(prop in newArr) {
    arr.push(newArr[prop].id);
}

請允許我建議您,下次再找Google,而不是直接向Stack Overflow尋求幫助。 :)另外,這不是JSON數組:它是Javascript數組。 並且最好使用[]表示法( var arr = [] )初始化數組。

給出的兩個答案均無效,因為您正在創建嵌套數組( newarr=new Array([...]) )。

算法是:循環遍歷包含對象的Array,並將每個object.id的值push送到arr

在您的情況下:

for (var i=0;i<newarr[0].length;i+=1){
  if (newarr[0][i].id) {
    arr.push(newarr[0][i].id);
}

此外:這不是“ JSON數組”。 沒有諸如JSON對象/數組之類的東西

您可以在數組上使用map方法:

arr = newarr.map(function(obj) { return obj.id })

以及文檔的鏈接: https : //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map

如果您在每個對象中都沒有ID,則可能需要filter null:

arr = newarr.map(function(obj) {  
  return obj.id  
}).filter(function(id){  
  return id !== undefined  
})

文檔: https : //developer.mozilla.org/zh-CN/docs/JavaScript/Reference/Global_Objects/Array/filter

如果您確實有一個嵌套數組,請首先執行以下操作:

newarr = newarr[0]

這是jsfiddle的鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM