我通过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;
}
}
你是一个更有效的解决方案吗?
答案 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(广泛使用)使用的策略,我说它是最快的。 如果您的服务器可以为您订购阵列,那么您可以提前知道第一个元素是您正在寻找的元素。