我对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