[解決済み] 2つの配列が同じ値を持つかどうかを知る方法
2022-04-27 08:02:53
質問
1つはajaxリクエストからの情報で満たされ、もう1つはユーザーがクリックしたボタンを格納するものです。私はこのコードを使用しています(私はサンプルの数字で満たされた)。
var array1 = [2, 4];
var array2 = [4, 2]; //It cames from the user button clicks, so it might be disordered.
array1.sort(); //Sorts both Ajax and user info.
array2.sort();
if (array1==array2) {
doSomething();
}else{
doAnotherThing();
}
しかし、それは常に
false
2つの配列が同じであっても、名前が異なれば、同じ配列になります。(ChromeのJS Consoleで確認しました)。そこで、この2つの配列が同じものを含んでいるかどうかを知る方法はないでしょうか?なぜ
false
? 最初の配列にあるどの値が、2番目の配列にないかを知るにはどうすればよいのでしょうか?
どのように解決するのですか?
配列を並べ替えて、1つずつ値を比較します。
function arrayCompare(_arr1, _arr2) {
if (
!Array.isArray(_arr1)
|| !Array.isArray(_arr2)
|| _arr1.length !== _arr2.length
) {
return false;
}
// .concat() to not mutate arguments
const arr1 = _arr1.concat().sort();
const arr2 = _arr2.concat().sort();
for (let i = 0; i < arr1.length; i++) {
if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}
関連
-
元のイベントが実行されなかった後に要素を追加するためのjQueryソリューション
-
vue for 登録ページ効果 vue for sms 認証コードログイン
-
vueが定義するプライベートフィルタと基本的な使い方
-
Vueの「データを聴く」原則を解説
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] どのラジオボタンが選択されているかをjQueryで知るにはどうしたらよいですか?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] JavaScriptで2つの配列の差を取得する方法は?
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
最新
-
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 実装 サイバーパンク風ボタン