2016-09-06 10 views
0

私はjsonオブジェクトの下にたくさんあるようです。それは、例えばlookup["22"]で取得してオブジェクトの下に入ることができるようにすることです。しかし、私は何が最良の方法であり、それがいかに効果的であるか分からない。 Array.prototype.find()ユニークなIDに基づいてjsonオブジェクトを検索

var data = [ 
    { 
     "id": "22", 
     "Email": "[email protected]" 
    }, 
    { 
     "id": "11", 
     "Email": "[email protected]" 
    } 
], 

答えて

1

あなたは、最初の項目整合条件をループあなたのアレイと見つけることができます。検索を行う関数(ES6の構文を使用する)を書くことができます:

const lookup = id => data.find(d => d.id === id); 
lookup('22'); 

これはすべての環境でサポートされていますが、ノードで動作するはずです。

1

メモリ内にあり、lookup indexを作成できるように格納されていないJSONオブジェクトがあるとします。

純粋な解決策は、コレクション全体をループし、各ルックアップでO(n)時間を与えるArray.prototype.findを使用することです。しかし、を構成することができれば、 JSONがフォーマットされていると、長期的には時間を節約できます。

const data = { 
    "22": { 
     "id": "22", 
     "Email": "[email protected]" 
    }, 
    "11": { 
     "id": "11", 
     "Email": "[email protected]" 
    } 
} 

そして、あなたは上記の示したとして、あなたが行うことができます:data[id]あなたが固有のIDを保証することができれば、このような構造を作成することを検討してください。このデータを厳格なAPIから取得している場合は、単一のドキュメントを検索するのと同じ時間でインデックスを作成するため、多くのルックアップを行っている場合は手動でデータを変更する価値があります。

+0

私はそれをすることができましたが、これは残りのAPIです。 –

関連する問題