2017-01-06 10 views
1

javascriptのリクエストによって情報が表示されます。最新のjsonを見つけるための効果的なアルゴリズムjson

私はjson変数を持っています。たとえばvar応答です。

そして、それらのそれぞれは、更新日付要素を持っています

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

あなたは、より効果的な解決策はありますか?

答えて

1

ソートは、2回繰り返す必要があるため、(もっとも優れていますが)最速の解決方法ではありません。最後のものだけをご希望の場合は、次のようなものを使用することもできます。

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

パフォーマンスは必須です。

PS。または、矢印機能なし:

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

だけでソートし、それがUnderscoreJS library(広く使われている)で使用される戦略であるので、最初の1

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

私はECMA 6がまだ(IEのような...)ブラウザの数によってサポートされていない矢印機能」原因を避けたい – ValLeNain

+0

あなたがそれらを作るためにバベルのようなものを使用することができます@ValLeNain機能はすべてのブラウザで動作します –

0

を取得し、私はそれが最速だと思います。 あなたのサーバがあなたのために配列を注文することができるなら、あなたが探しているものが最初の要素であることを事前に知ることができればもっと良いでしょう。

関連する問題