【原創】javascript比較兩個數組中元素是否一致

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
相關文章
相關標籤/搜索