実現したいこと
2つの多次元配列を比較し、配列の要素が一致していればtrue
を返し、一致していなければfalse
を返す関数の書き方について知りたいです
困っていること
純粋な配列であれば、比較する関数処理を書けるのですが、多次元配列のような配列の場合、どう比較し合う処理を書けば良いか分からずに困っています
js
1function compare(a, b){ 2 // 処理を書いていくのだが分からない... 3 return false; 4} 5// true 6const arrA = ["C", "E", ["B", "D", ["A"]]]; 7const arrB = ["C", "E", ["B", "D", ["A"]]]; 8console.log(compare(arrA, arrB)) 9// false: BとCの位置が異なっているため 10const arrC = ["C", "E", ["B", "D", ["A"]]]; 11const arrD = ["B", "E", ["C", "D", ["A"]]]; 12console.log(compare(arrC, arrD)) 13// false: Aが配列になっているかどうかを見ている 14const arrE = ["C", "E", ["B", "D", ["A"]]]; 15const arrF = ["C", "E", ["B", "D", "A"]]; 16console.log(compare(arrE, arrF))
JSON.stringify
を使った解
js
1// true 2const arrA = ["C", "E", ["B", "D", ["A"]]]; 3const arrB = ["C", "E", ["B", "D", ["A"]]]; 4console.log(JSON.stringify(arrA) == JSON.stringify(arrB)) 5// res: true 6 7// false: BとCの位置が異なっているため 8const arrC = ["C", "E", ["B", "D", ["A"]]]; 9const arrD = ["B", "E", ["C", "D", ["A"]]]; 10console.log(JSON.stringify(arrC) == JSON.stringify(arrD)) 11// res: false 12 13// false: Aが配列になっているかどうかを見ている 14const arrE = ["C", "E", ["B", "D", ["A"]]]; 15const arrF = ["C", "E", ["B", "D", "A"]]; 16console.log(JSON.stringify(arrE) == JSON.stringify(arrF)) 17// res: false
JSON.stringify
を利用すると求めている解を出すことができますが、JSONにして配列が一致しているかどうかを見るだけだとロジックを考える上であまり勉強にはならないため、考え方のロジックについてご教示いただけると幸いです。
回答4件
あなたの回答
tips
プレビュー