如何判斷兩個數組相同


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

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM