[解決済み] lodashを使ってギザギザ配列(順番がない項目の存在)を比較する
2022-04-23 13:39:54
質問
ループを使えばできるのは分かっているのですが、エレガントな方法を探しています。
ギザギザの2つの配列(配列の配列)があります。
var array1 = [['a', 'b'], ['b', 'c']];
var array2 = [['b', 'c'], ['a', 'b']];
を使いたいのですが
lodash
を使用して、上記の2つのギザギザ配列が同じであることを確認します。同じ」というのは、「同じ」でない項目が
array1
に含まれないものは
array2
. ギザギザ配列の項目は、実際には配列であることに注意してください。そこで、内側の配列同士を比較したいと思います。
これらの項目間の等質性をチェックするという意味で。
['a', 'b'] == ['b', 'a']
または
['a', 'b'] == ['a', 'b']
文字が常に順番に並んでいるため、どちらも機能します。
アップデイト : 元の質問は(ギザギザ配列の代わりに)"array"について話しており、何年もの間、多くの人が単純な1次元配列の比較について議論し(答えを追加し)ました(質問で提供された例が、彼らが期待していた単純な1次元配列と実際には似ていないことに気付かないままに)。
どのように解決するのですか?
外側の配列をソートすると
_.isEqual()
内側の配列はすでにソートされているからです。
var array1 = [['a', 'b'], ['b', 'c']];
var array2 = [['b', 'c'], ['a', 'b']];
_.isEqual(array1.sort(), array2.sort()); //true
なお
.sort()
は配列に変異を与えます。もしそれが問題なら、まずコピーを作ってください(例えば)
.slice()
またはスプレッド演算子(
...
).
あるいは、Daniel Budickが以下のコメントで勧めているようにするのもよいでしょう。
_.isEqual(_.sortBy(array1), _.sortBy(array2))
Lodashの
sortBy()
は配列を変異させません。
関連
-
fetch ネットワークリクエストラッパーの説明例
-
jQueryのコピーオブジェクトの説明
-
vue ディレクティブ v-html と v-text
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
[解決済み] JavaScriptで配列を比較する方法は?
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
-
[解決済み】PHPで配列やデータをソートするにはどうすればいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vue ディレクティブ v-html と v-text
-
Vueのフィルタの説明
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
JavaScriptのgetElementById()メソッド入門