[解決済み] Javascriptの配列を使って、集合の差を計算する最も速い方法、あるいは最もエレガントな方法は何でしょうか?
2022-05-14 06:22:49
質問
質問
A
とし
B
は2つのセットである。私が探しているのは
本当に
を計算する高速でエレガントな方法を探しています。
A - B
または
A \B
といった具合に、好みに応じて使い分けることができます。この2つのセットは、タイトルにあるように、Javascriptの配列として保存され、操作されます。
注意事項
- ヤモリ特有の仕掛けがあってもOK
- ネイティブ関数にこだわりたい (ただし、軽量なライブラリの方がずっと速い場合は歓迎)
- 見たことはあるが、テストはしていない。 JS.Set (前の点を参照)
編集します。 重複する要素を含む集合についてのコメントに気づきました。私が「集合」と言ったとき、私は数学的な定義に言及しています。それは、(とりわけ)重複する要素を含まないことを意味します。
どのように解決するのですか?
これが最も効果的かどうかはわかりませんが、おそらく最も短い方法でしょう。
A = [1, 2, 3, 4];
B = [1, 3, 4, 7];
diff = A.filter(function(x) { return B.indexOf(x) < 0 })
console.log(diff);
ES6に更新しました。
A = [1, 2, 3, 4];
B = [1, 3, 4, 7];
diff = A.filter(x => !B.includes(x) );
console.log(diff);
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] JavaScriptの「new」キーワードとは何ですか?
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] JavaScriptで2つの配列の差を取得する方法は?
-
[解決済み】JavaScript版sleep()とは?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
jsを使った簡単な照明スイッチのコード
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] テスト
-
[解決済み】Uncaught SyntaxError: JSONの位置0に予期しないトークンuがあります。
-
[解決済み】ローカルファイルを開くことができません - Chrome: ローカルリソースの読み込みが許可されていない
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
[解決済み] JavaScriptで2つの配列の差を取得する方法は?