有效的算法找到最新更新的json

时间:2017-01-06 12:37:13

标签: javascript json algorithm

我通过javascript中的请求收到一些信息。

我有一个json变量:var response,例如。

然后每个人都有一个更新日期元素:

response[0].updateDate 

是我的回复的第一个元素的updateDate。

如何找到具有最后updateDate的元素?

我可以做类似的事情:

var actualElement = 0
for(var i = 0; i < response.length; i++){
    if(response[actualElement].updateDate < response[i].updateDate){
        actualElement = i;
    }
}

你是一个更有效的解决方案吗?

3 个答案:

答案 0 :(得分:1)

排序不是最快的解决方案(虽然它是最漂亮的),因为它需要迭代两次。如果你只想要最后一个,你也可以使用类似的东西:

response.reduce((max, c) => max.updateDate > c.updateDate ? max : c, response[0]);

如果表现是必须的话,那就是Thtat。

PS。或者,没有箭头功能:

response.reduce(function(max, c) {
    return max.updateDate > c.updateDate ? max : c;
}, response[0]);

答案 1 :(得分:0)

只需排序并获得第一个

response.sort((a, b) => b.updateDate - a.updateDate)
response[0]

答案 2 :(得分:0)

由于它是UnderscoreJS library(广泛使用)使用的策略,我说它是最快的。 如果您的服务器可以为您订购阵列,那么您可以提前知道第一个元素是您正在寻找的元素。