javascript檢測(cè)兩個(gè)數(shù)組是否相似
JS要比較兩個(gè)數(shù)組是否有相同的元素,即兩個(gè)數(shù)組所有元素都相同,但元素的順序不一定一致。只就需要先將數(shù)組進(jìn)行排序,再比較兩個(gè)數(shù)組是否相等。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>js 檢測(cè)兩個(gè)數(shù)組是否相似</title> </head> <body> <script> //數(shù)組中的成員類型相同,順序可以不同。例如[1, true] 與 [false, 2]是相似的。 //數(shù)組的長(zhǎng)度一致。 //類型的判斷范圍,需要區(qū)分:String, Boolean, Number, undefined, null, 函數(shù),日期, window. function arraysSimilar(arr1, arr2){ //判斷邊界 if (!(arr1 instanceof Array) || !(arr2 instanceof Array)) { return false; } //判斷長(zhǎng)度 if (arr1.length != arr2.length) return false; var i = 0, n = arr1.length, countMap1 = {}, countMap2 = {}, t1, t2, TYPES = ['string', 'boolean', 'number', 'undefined', null, 'function', 'date', 'window']; for ( ; i < n; i++) { t1 = typeOf(arr1[i]); t2 = typeOf(arr2[i]); if (countMap1[t1]) { countMap1[t1] ++; }else{ countMap1[t1] = 1; } if (countMap2[t2]) { countMap2[t2] ++; }else{ countMap2[t2] = 1; } } function typeOf(ele){ var r; if (ele === null) r = 'null'; else if(ele instanceof Array) r = 'array'; else if(ele === window) r = 'window'; else if(ele instanceof Date) r = 'date'; else r = typeof ele; return r; } for (i = 0; i < TYPES.length; i++) { if (countMap1[TYPES[i]] != countMap2[TYPES[i]]) return false; } return true; } document.write(arraysSimilar([1,true], [false, 2])); </script> </body> </html>
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
js模式化窗口問(wèn)題![window.dialogArguments]
這篇文章主要介紹了js模式化窗口問(wèn)題![window.dialogArguments],需要的朋友可以參考下2016-10-10javascript實(shí)現(xiàn)根據(jù)iphone屏幕方向調(diào)用不同樣式表的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)根據(jù)iphone屏幕方向調(diào)用不同樣式表的方法,涉及javascript針對(duì)樣式表動(dòng)態(tài)操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-07-07通過(guò)身份證號(hào)得到出生日期和性別的js代碼
主要是通過(guò)判斷指定位數(shù)的數(shù)字,來(lái)判斷并加以算法實(shí)現(xiàn)男女性別的判斷。2009-11-11產(chǎn)制造追溯系統(tǒng)之通過(guò)微信小程序?qū)崿F(xiàn)移動(dòng)端報(bào)表平臺(tái)
這篇文章主要介紹了產(chǎn)制造追溯系統(tǒng)-通過(guò)微信小程序?qū)崿F(xiàn)移動(dòng)端報(bào)表平臺(tái) ,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06javaScript生成支持中文帶logo的二維碼(jquery.qrcode.js)
這篇文章主要介紹了javaScript生成二維碼,改造jquery.qrcode.js,使之支持中文,能帶logo的二維碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01innerText innerHTML的用法以及注意事項(xiàng) [推薦]
我們常常需要使用另外一些對(duì)象的屬性來(lái)實(shí)現(xiàn)動(dòng)態(tài)改變其中的文本,它們就是:innerText,outerText,innerHTML,outerHTML,千萬(wàn)要注意它們的大小寫,因?yàn)殄e(cuò)一點(diǎn)您就得不到預(yù)期的效果了。2009-05-05