1、數組之間無法直接通過 ==或===判斷是否相同
解決思路:數組無法直接對比,但字符串可以啊
1) 使用toString()
var a = [1, 2, 3]; var b = [1, 2, 3]; console.log(a.toString() === b.toString()); //true 但數組是復合數組就不行了 var a = [1, 2, {name: "zhang"}]; var b = [1, 2, {name: "zhangss"}]; console.log(a.toString() === b.toString()); //true (判斷失敗)
2) 使用JSON.stringify()
var a = [1, 2, 3]; var b = [1, 2, 3]; console.log(JSON.stringify(a) === JSON.stringify(b)); //true 復合數組也可以判斷 var a = [1, 2, {name: "zhang"}]; var b = [1, 2, {name: "zhangss"}]; console.log(JSON.stringify(a) === JSON.stringify(b)); //false 但數組位置變化無法判斷 var a = [2, 1, 3]; var b = [1, 2, 3]; console.log(JSON.stringify(a) === JSON.stringify(b)); //false (數組應該是相同的) 解決辦法很簡單,使用數組的sort()就行 var a = [2, 1, 3]; var b = [1, 2, 3]; console.log(JSON.stringify(a.sort()) === JSON.stringify(b.sort())); // true