使用以JSON形式从API返回的信息,我试图操纵以下数据:
"results": [
{
"url": "etcetc",
"id": 1,
"user": {
"url": "etcetc",
"id": 2,
"email": "email@example.com",
"username": "example",
"first_name": "mister",
"last_name": "sample"
},
"data1": "String",
"data2": 10,
"data3": 6,
"data4": 12000,
"data5": 0.3333333333333333
}
因此在"结果"下返回了几个对象,并且每个对象都有自己的数据集1-5。使用Angular,搜索具有最高data5的对象的最佳方法是什么,并返回该特定对象的其余信息?因此,如果有意义,我会打印出具有最高data5值的数组对象的data1-5。
答案 0 :(得分:4)
假设您有一个对象而不是JSON,或者将JSON解析为一个对象,您可以使用Array.reduce
var max = obj.results.reduce(function(a,b) {
return a.data5 > b.data5 ? a : b;
});
ES2015版
var max = obj.results.reduce( (a, b) => a.data5 > b.data5 ? a : b );
答案 1 :(得分:0)
您只需要一个简单的for-each循环:
highest = results[0] // seed highest with the first element
results.forEach(function(el) {
if (el['data5'] > highest['data5'])
highest = el
})