使用从JSON形式的API返回的信息,我试图操纵以下数据:

"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
    }


因此在“结果”下有几个返回的对象,每个对象都有自己的一组data1-5。使用Angular,搜索具有最高数据5的对象并返回该特定对象的其余信息的最佳方法是什么?因此,如果可行,我将为data5值最高的数组对象打印出data1-5。

最佳答案

假设您有一个对象(不是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 );

09-11 13:48