は今、私は次のJavaScript辞書にJavascriptの辞書のパフォーマンスの問題
var a = {};
a['SVG343'] = 1942;
a['UAL534'] = 2153;
を持っている右のこれらの数字は時間を表し、そしてキーはユニークなIDです。ユニークなので、私はidsをキーにしたいと思っていました。私の問題は、対応するIDを見つける時間が与えられています。私は正しい時間を見つけて現在のキーを使ってIDを取得するまで、どのようにこれを行うつもりでしたか?
しかし、私はパフォーマンスについて心配しています。私の質問は、辞書(O(n))の各エントリを他の方法よりも大幅に遅くしていますか?
var indexByTimes = {};
for (var prop in a) {
if (a.hasOwnProperty(prop)) {
indexByTimes[a[prop]] = prop;
}
}
と複数の時間値のため、IDの配列を使用します:
for (var prop in a) {
if (a.hasOwnProperty(prop)) {
if (indexByTimes.hasOwnProperty(a[prop])) {
indexByTimes[a[prop]].push(prop);
} else {
indexByTimes[a[prop]] = [prop];
}
}
}
次に、あなたが時間に対応するすべてのIDにアクセスすることができますが、回からインデックスを構築することができ
を使用するのが好ましいだろうvarがaが{} =;'あなたがここに – sjngm
@sjngmを配列を使用していないとして、おかげで固定 – Albinoswordfish
も倍ですユニーク?そうでない場合、より多くの時間価値がある場合、どのIDを選択しますか? –