JavaScript で 2つの配列を比較する
-
JavaScript で 2つの配列を比較するための
Array.prototype.equals
-
JSON.stringify()
を使って JavaScript で配列を比較する - JavaScript でループを使用しての 2つの配列の比較
このチュートリアルでは、JavaScript で配列を比較する 3つの方法を紹介します。複数の方法がありますが、パフォーマンスは異なるかもしれません。
JavaScript で 2つの配列を比較するための Array.prototype.equals
JavaScript は既存のクラスに新しいプロパティやメソッドを追加する機能を提供しています。Array.prototype
を使って、カスタムメソッド equals
を配列オブジェクトに追加することができます。
下の例では、まず両方の配列の長さを調べ、それぞれの要素を比較します。また、a1
と a2
が Array
インスタンスであるかどうかも確認します。最後に、このメソッドを使用して、a1.equals(a2)
によって最初の配列と 2 番目の配列を比較します。
例:
var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];
Array.prototype.equals = function(getArray) {
if (this.length != getArray.length) return false;
for (var i = 0; i < getArray.length; i++) {
if (this[i] instanceof Array && getArray[i] instanceof Array) {
if (!this[i].equals(getArray[i])) return false;
} else if (this[i] != getArray[i]) {
return false;
}
}
return true;
};
console.log('Comparing a1 and a2', a1.equals(a2));
console.log('Comparing a1 and a3', a1.equals(a3));
出力:
Comparing a1 and a2 true
Comparing a1 and a3 false
JSON.stringify()
を使って JavaScript で配列を比較する
2つの配列を比較するもう一つのテクニックは、最初に文字列型にキャストしてから比較することです。JSON
はウェブサーバとの間でデータをやり取りするために使われますが、ここではそのメソッドを使用することができます。これは Array
を string
に変換する JSON.stringify()
を使用することで実現できます。a1
と a2
は両方とも文字列なので、===
を使って等しいかどうかを調べることができます。
例:
var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];
console.log('Comparing a1 and a2', JSON.stringify(a1) === JSON.stringify(a2));
console.log('Comparing a1 and a3', JSON.stringify(a1) === JSON.stringify(a3));
出力:
Comparing a1 and a2 true
Comparing a1 and a3 false
JavaScript でループを使用しての 2つの配列の比較
ループは、配列をループさせてから要素を比較して一致するかどうかをチェックするために、配列をループさせることで、JavaScript では配列を比較する最も伝統的な方法となっています。
よりすっきりさせるために、関数を使って結果として boolean
を返すことができます。
例:
var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];
const getResult = function(a1, a2) {
var i = a1.length;
if (i != a2.length) return false;
while (i--) {
if (a1[i] !== a2[i]) return false;
}
return true;
};
console.log('Comparing a1 and a2', getResult(a1, a2));
console.log('Comparing a1 and a3', getResult(a1, a3));
出力:
Comparing a1 and a2 true
Comparing a1 and a3 false
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn