[解決済み] オブジェクトのプロパティの最小値/最大値を取得する高速な方法
2022-11-10 18:29:08
質問
javascriptでこのようなオブジェクトを持っています。
{ "a":4, "b":0.5 , "c":0.35, "d":5 }
私の持っているオブジェクトは巨大であり、私は2秒ごとに最小/最大値を取得する必要があるため、プロパティ間の最小値と最大値を取得する高速な方法はありますか?(オブジェクトの値は変化し続ける)。
どのように解決するには?
をすべてループさせることなく、一般的なケースで最大/最小を見つける方法はありません。 n の要素をループすることなく最大値/最小値を求めることはできません(1 から n-1 へと進む場合、要素 n が現在の最大/最小値より大きくない(または小さい)ことをどうやって知ることができますか?)
値が数秒ごとに変化しているとのことですが、どのように変化しているのでしょうか。しかしこの場合でも、変更された値の 1 つが以前の最大/最小値であった場合、それらを再度ループする必要があるかもしれません。
別の選択肢は、これもまた、変更する値の数が少ない場合のみですが、ツリーやヒープのような構造体に値を格納し、新しい値が到着すると、それらを適切に挿入(または更新)することです。しかし、それが可能かどうかは、質問に基づいて明確ではありません。
すべての要素をループしながら与えられたリストの最大/最小要素を取得したい場合、以下のスニペットのようなものを使用することができますが、すべての要素を通過しなければできません。
var list = { "a":4, "b":0.5 , "c":0.35, "d":5 };
var keys = Object.keys(list);
var min = list[keys[0]]; // ignoring case of empty list for conciseness
var max = list[keys[0]];
var i;
for (i = 1; i < keys.length; i++) {
var value = list[keys[i]];
if (value < min) min = value;
if (value > max) max = value;
}
関連
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み] jQueryでJavaScriptオブジェクトから選択する際に、オプションを追加する最も良い方法は何ですか?
-
[解決済み] オブジェクトリテラル/イニシャライザーの自己参照
-
[解決済み] JavaScriptオブジェクトのすべてのプロパティ値を取得する方法(キーを知らなくても)?
-
[解決済み】「GET」パラメータから値を取得する(JavaScript)【重複】。
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] リダイレクトされずにHTMLフォームを送信する方法
-
[解決済み] オブジェクトから最大値を持つキーを取得する