2016-03-05 65 views
2

使用信息從JSON形式的API返回,我試圖操縱以下數據:如何使用角度訪問嵌套JSON數組數據,通過數組參數進行過濾?

"results": [ 
    { 
     "url": "etcetc", 
     "id": 1, 
     "user": { 
      "url": "etcetc", 
      "id": 2, 
      "email": "[email protected]", 
      "username": "example", 
      "first_name": "mister", 
      "last_name": "sample" 
     }, 
     "data1": "String", 
     "data2": 10, 
     "data3": 6, 
     "data4": 12000, 
     "data5": 0.3333333333333333 
    } 

所以有幾個對象在「結果」返回,每個對象都有自己的一套數據1的-5。使用Angular,搜索具有最高data5的對象的最佳方式是什麼,並返回該特定對象的其餘信息?所以我會打印data1-5數組對象的最高data5值,如果這是有道理的。

回答

4

假設你有一個對象,而不是JSON,或解析JSON成一個對象,你可以使用Array.reduce

var max = obj.results.reduce(function(a,b) { 
    return a.data5 > b.data5 ? a : b; 
}); 

FIDDLE


ES2015版本

var max = obj.results.reduce((a, b) => a.data5 > b.data5 ? a : b); 
0

一個簡單的for-each循環是所有你需要:

highest = results[0] // seed highest with the first element 

results.forEach(function(el) { 
    if (el['data5'] > highest['data5']) 
    highest = el 
})