我對javascript比較感到困惑。讓我們說:Javascript比較表達式
var array1 = [1,2,3];
var array2 = [1,2,3];
array1 == array2 ;
false // why false ?
array1 === array2;
false // also why false?
任何人都可以清楚地向我解釋這一點嗎?先謝謝你。
我對javascript比較感到困惑。讓我們說:Javascript比較表達式
var array1 = [1,2,3];
var array2 = [1,2,3];
array1 == array2 ;
false // why false ?
array1 === array2;
false // also why false?
任何人都可以清楚地向我解釋這一點嗎?先謝謝你。
它們是錯誤的,因爲您正在比較兩個不同的Array實例。只有當它們實際上引用相同的實例時纔是如此。
var array1 = [1,2,3];
var array2 = array1;
array1 == array2 ; // true
要比較他們的內容,您需要逐一比較每個項目。像這樣的東西,雖然這看起來並不比一個層次更深。
var array1 = [1,2,3];
var array2 = [1,2,3];
function compareArrays(a1,a2) {
var len = a1.length;
if(len !== a2.length)
return false;
while(len--) {
if(a1[ len ] !== a2[ len ]) {
return false;
}
}
return true;
}
compareArrays(array1, array2); // true