JavaScript での配列の効率的な比較
はじめに
JavaScript での配列の比較は難しい場合があります。比較演算子 (==) は期待どおりに機能せず、比較のために配列を JSON に変換するのは非効率的になる可能性があります。ここでは、配列を効率的に比較するための包括的なガイドを示します:
配列の比較
効率的な配列比較を実行するには、次の手順に従います:
1 。カスタム Equals メソッド:
Array.prototype で、equals というカスタム メソッドを定義します。このメソッドは、配列の各要素を再帰的に比較します。
Array.prototype.equals = function (array) { if (!array) return false; if (this === array) return true; if (this.length !== array.length) return false; for (let i = 0; i < this.length; i++) { if ( this[i] instanceof Array && array[i] instanceof Array ) { if (!this[i].equals(array[i])) return false; } else if (this[i] !== array[i]) { return false; } } return true; };
2.使用法:
equals メソッドを使用して 2 つの配列を比較するには、次のように一方の配列で呼び出します。
[1, 2, [3, 4]].equals([1, 2, [3, 2]]) === false;
オブジェクトの比較
オブジェクトを部分的に比較することは可能ですが、2 つのオブジェクト インスタンスは、同じものが含まれている場合でも決して等しくないことに注意する必要があります。データ。
1.オブジェクトのカスタム Equals メソッド:
Object.prototype.equals = function (object2) { for (let propName in this) { if ( this.hasOwnProperty(propName) !== object2.hasOwnProperty(propName) ) { return false; } else if ( typeof this[propName] !== typeof object2[propName] ) { return false; } } for (let propName in object2) { if ( this.hasOwnProperty(propName) !== object2.hasOwnProperty(propName) ) { return false; } else if ( typeof this[propName] !== typeof object2[propName] ) { return false; } if (!this.hasOwnProperty(propName)) continue; if ( this[propName] instanceof Array && object2[propName] instanceof Array ) { if (!this[propName].equals(object2[propName])) return false; } else if ( this[propName] instanceof Object && object2[propName] instanceof Object ) { if (!this[propName].equals(object2[propName])) return false; } else if (this[propName] !== object2[propName]) { return false; } } return true; };
2.使用法:
({ a: 1, foo: "bar", numberOfTheBeast: 666 }).equals({ a: 1, foo: "bar", numberOfTheBeast: 666, }) === false;
indexOf および contains を含むネストされた配列
ネストされた配列を含むより複雑な場合は、indexOf および contains 関数を使用して検索できます。ネストされた特定のオブジェクトの場合arrays.
結論
これらの手法に従うことで、JavaScript で配列とオブジェクトを効率的に比較でき、一般的な落とし穴に対処し、そのような比較を自信を持って実行できるようになります。
以上がJavaScript で配列とオブジェクトを効率的に比較するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。