JS中比較兩個Object數(shù)組是否相等方法實例
一、問題
在js中是不能直接用“==”或者“===”來計算兩個數(shù)組是否相等的,那么就需要對數(shù)組的值進(jìn)行比較;
二、次解決方案
對于比較兩個數(shù)組次要的方法有如下幾種,為什么說是次要解決方案呢?因為它不能真正稱之為對兩個數(shù)組的對比。
1. 把兩個數(shù)組轉(zhuǎn)化為字符串的形式比較,如下:
a. 當(dāng)兩個數(shù)組元素類型相同,順序相同時,直接判斷是否相等,結(jié)果不相等;轉(zhuǎn)化為字符串后,結(jié)果相等;
var a=[1, 2, 3, 4]; var b = a.slice(); console.log(a); console.log(b); console.log(a == b); console.log(JSON.stringify(a) == JSON.stringify(b));
運行結(jié)果:

2.當(dāng)兩個數(shù)組元素類型不同,順序相同時,用toString()轉(zhuǎn)化為字符串,結(jié)果相等;用stringify轉(zhuǎn)化為字符串,結(jié)果不相等;
var a=[1, 2, 3, 4]; var b = ['1', 2, 3, 4]; console.log(a); console.log(b); console.log(a.toString() == b.toString()); console.log(JSON.stringify(a) == JSON.stringify(b));
運行結(jié)果如下:

3. 當(dāng)兩個數(shù)組不相同時,先排序,再轉(zhuǎn)化為Json字符串比較,結(jié)果相等:
var a = [1, 2, 3, 4]; var b = [4, 2, 3, 1]; console.log(a.sort()); console.log(b.sort()); console.log(JSON.stringify(a.sort()) == JSON.stringify(b.sort()));
運行結(jié)果:

4.當(dāng)數(shù)組包含Object時,先排序,再進(jìn)行比較,結(jié)果相等:
var a=[{"x":"abc"}, 2, 3, 4];
var b = [4, 2, 3, {"x":"abc"}];
console.log(a.sort());
console.log(b.sort()); console.log(JSON.stringify(a.sort()) == JSON.stringify(b.sort()));
運行結(jié)果:

從以上可以看出:
1. 如果兩個數(shù)組元素類型相同,順序相同時,用stringify轉(zhuǎn)化為字符串后進(jìn)行比較;
2. 如果兩個數(shù)組元素類型相同,順序不相同時,排序后,用stringify轉(zhuǎn)化為字符串再進(jìn)行比較;
3.兩個數(shù)組元素類型不同時,用stringify轉(zhuǎn)化為字符串后進(jìn)行比較,數(shù)組不相等;用toString()轉(zhuǎn)化為字符串后進(jìn)行比較,數(shù)組相等;
以上就是本次介紹的全部相關(guān)知識點,內(nèi)容還需要待補充,后期小編會完善相關(guān)內(nèi)容,跟多內(nèi)容可以在下方的相關(guān)文章學(xué)習(xí)。
相關(guān)文章
深入理解JavaScript系列(27):設(shè)計模式之建造者模式詳解
這篇文章主要介紹了深入理解JavaScript系列(27):設(shè)計模式之建造者模式詳解,建造者模式可以將一個復(fù)雜對象的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示,需要的朋友可以參考下2015-03-03
JS實現(xiàn)iframe編輯器光標(biāo)位置插入內(nèi)容的方法(兼容IE和Firefox)
這篇文章主要介紹了JS實現(xiàn)iframe編輯器光標(biāo)位置插入內(nèi)容的方法,可實現(xiàn)文本與圖片的插入功能,并兼容IE和Firefox瀏覽器,需要的朋友可以參考下2016-06-06
微信小程序基于picker實現(xiàn)級聯(lián)菜單
這篇文章主要為大家詳細(xì)介紹了微信小程序基于picker實現(xiàn)級聯(lián)菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
Layui組件Table綁定行點擊事件和獲取行數(shù)據(jù)的方法
今天小編就為大家分享一篇Layui組件Table綁定行點擊事件和獲取行數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
js模擬淘寶網(wǎng)的多級選擇菜單實現(xiàn)方法
這篇文章主要介紹了js模擬淘寶網(wǎng)的多級選擇菜單實現(xiàn)方法,涉及javascript針對頁面元素結(jié)點的遍歷與設(shè)置等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08

