JavaScript中比較兩個數組相等
直接比較數組相等,其實是比較數組的內存地址是否相等,因此,直接用==和===比較兩個數字,最後都會返回false;數組
var a=new Array("1");b=new Array("1");console.log(a==b); //這裏的new能夠省略,Array("2")表示建立一個數組,數組只有一個元素,爲2;Array(2)表示建立一個數組,數組有兩個元素
false undefined var a=new Array("1");b=new Array("1");console.log(a===b); false undefined
事實上,要判斷兩個數組是否相等,只能將數組現轉化爲字符串,再比較字符串是否相等,須要調用toString()方法:spa
var a=new Array("1","2"), b=new Array("1","2"); console.log(a.toString()===b.toString()); true
var a=new Array("1","2"), b=new Array("1","2");console.log(a.toString()==="1,2"); true
更嚴格來講,若是兩個數組中元素相同,但順序不一樣,則須要先對數組進行排序,再對排序完成的數組進行比較:arr.sort().toString();code
var a=new Array("1","2","tt"),b=new Array("1","tt","2"); console.log(a.toString()===b.toString()); false undefined var a=new Array("1","2","tt"),b=new Array("1","tt","2"); console.log(a.sort().toString()===b.sort().toString()); true undefined