web-dev-qa-db-ja.com

最も効率的な方法で同一の配列をチェックする方法は?

2つの配列が同一であるかどうかを確認したい(内容に関してではなく、正確な順序で)。

例えば:

 array1 = [1,2,3,4,5]
 array2 = [1,2,3,4,5]
 array3 = [3,5,1,2,4]

配列1と2は同じですが、3は異なります。

JavaScriptでこれを行う良い方法はありますか?

78
ssdesign

それでは、各要素を繰り返しチェックすることの何が問題になっていますか?

function arraysEqual(arr1, arr2) {
    if(arr1.length !== arr2.length)
        return false;
    for(var i = arr1.length; i--;) {
        if(arr1[i] !== arr2[i])
            return false;
    }

    return true;
}
141
palswim

次のように文字列表現を比較できます。

array1.toString() == array2.toString()
array1.toString() !== array3.toString()

しかしそれはまた

array4 = ['1',2,3,4,5]

あなたにとって重要な場合、array1に等しい

40
Adam