これは 1 行の質問で表現するのはちょっと難しいですが、データを構造化し、Javascript で関数を記述するためのアドバイス/ベスト プラクティスを探しています。
定期的にステータスが変わるアイテムがいくつかあります。私のデータには、itemID、タイムスタンプ、ステータスが含まれています。私は現在、タイムスタンプとステータスを含む履歴の優先度を使用して、(アイテムごとに) オブジェクトの配列として構造化しています。(下記参照)。
最新の過去の更新を使用して、特定の時間に各オブジェクトのステータスを簡単に取得できる関数を探しています。私のデータ構造がこれを許可するかどうか、または許可する場合は関数の書き方がわかりません。(この例では、タイムスタンプを 4 桁の数字に短縮します)
var items = [
{ id: 1,
history: {1234: 'open', 1256: 'in-use', 1289: 'reset', 1293: 'open'},
{ id: 2,
history: {1230: 'open', 1290: 'in-use'},
{ id: 3,
history: {1238: 'open', 1241: 'in-use', 1251: 'reset'}
]
次のような関数ができるようにしたいと思います。
getStatus(1260);
そして戻る
{1: 'in-use', 2: 'open', 3: 'reset'}
各 ID と、クエリされた時間より前の最新の履歴レコードに基づいて渡された時点のステータス。
私はこのデータ構造にまったく執着していません。また、履歴を時間とステータスを含むオブジェクトの配列にしようとしましたが、これは毎回配列全体をループする必要があることを意味します。私の最大の問題は、頭がこれを行うために SQL メソッドに私を押し付けていることですが、クライアント側の Javascript で立ち往生しています...
私の質問: これに最適なデータ構造は何ですか? getStatus() 関数を書くにはどうすればよいですか?
ありがとう!