[解決済み] ECMA6集合の等質性比較
2022-05-11 13:29:19
質問
2つのjavascriptセットを比較する方法は?を使ってみました。
==
と
===
が、どちらもfalseを返します。
a = new Set([1,2,3]);
b = new Set([1,3,2]);
a == b; //=> false
a === b; //=> false
この2つのセットは、定義上、等価である。 じゅんばんはない (少なくとも普段は)ありません。を見てきました。 MDNにあるSetのドキュメント どなたか、この方法をご存知の方はいらっしゃいますか?
どのように解決するのですか?
これを試してみてください。
var a = new Set([1,2,3]);
var b = new Set([1,3,2]);
alert(eqSet(a, b)); // true
function eqSet(as, bs) {
if (as.size !== bs.size) return false;
for (var a of as) if (!bs.has(a)) return false;
return true;
}
より機能的なアプローチといえるでしょう。
var a = new Set([1,2,3]);
var b = new Set([1,3,2]);
alert(eqSet(a, b)); // true
function eqSet(as, bs) {
return as.size === bs.size && all(isIn(bs), as);
}
function all(pred, as) {
for (var a of as) if (!pred(a)) return false;
return true;
}
function isIn(as) {
return function (a) {
return as.has(a);
};
}
があります。
all
関数は,すべての反復可能なオブジェクトに対して機能します(例えば
Set
と
Map
).
もし
Array.from
がもっと広く支持されていれば、実装できたかもしれません。
all
として機能します。
function all(pred, as) {
return Array.from(as).every(pred);
}
お役に立てれば幸いです。
関連
-
Vueにシンプルなメモ帳機能を実装
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
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クロスドメインソリューション リアクト構成 リバースプロキシ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
JSアレイループと効率解析の比較
-
JavaScriptのクロージャの説明
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
[解決済み】ローカルファイルを開くことができません - Chrome: ローカルリソースの読み込みが許可されていない
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。