JavaScript判斷數(shù)組重復(fù)內(nèi)容的兩種方法(推薦)
前言
一般,我們可能會給數(shù)組去重,這個操作并不復(fù)雜,執(zhí)行一個循環(huán)就是了.現(xiàn)在,我要做的是,判斷數(shù)組中是否有重復(fù)的內(nèi)容,如果有,返回 true 否則,返回 false.
思路
把數(shù)組變成字符串
循環(huán)原數(shù)組,拿每一個字段和這個字符串進行比對,看是否有重復(fù)
如何拿A字符串和B字符串進行對比,并且要求判斷出B字符串中包含過個A字符串呢?
方法一 indexOf() 和 lastIndexOf() 對比法.
首先,我們構(gòu)建代碼:
var arr = ["aa","bb","cc","bb","aa"]; arrRepeat(arr);
如上,我們要用一個arrRepeat(arr)的校驗函數(shù)并執(zhí)行,下面來構(gòu)建這個函數(shù)
function arrRepeat(arr){ var arrStr = JSON.stringify(arr),str; for (var i = 0; i < arr.length; i++) { if (arrStr.indexOf(arr[i]) != arrStr.lastIndexOf(arr[i])){ return true; } }; return false; }
OK,運行成功.
原理特別簡單,就是,數(shù)組中的字段,在由數(shù)組變成的字符串中的首次出現(xiàn)位置和最后一次出現(xiàn)位置是否一致,如果不一致,就說明這個重復(fù)出現(xiàn)了.
方法二 match() 正則對比方法
首先,和上面一樣,我們構(gòu)建代碼:
var arr = ["aa","bb","cc","bb","aa"]; arrRepeat(arr);
然后,我們重新構(gòu)建arrRepeat(arr)函數(shù)
function arrRepeat(arr){ var arrStr = JSON.stringify(arr),str; for (var i = 0; i < arr.length; i++) { if ((arrStr.match(new RegExp(arr[i],"g")).length)>1){ return true; } }; return false; }
原理是查找確定的重復(fù)次數(shù),如果是大于1的話,就肯定是重復(fù)了.注意,這里是能夠準確的查找出出現(xiàn)了幾次的哦!所以,這個方法其實有更廣泛的用途.
OK,運行又一次成功
總結(jié)
如果僅僅是比對第一個方法其實足夠用了.
第二個方法可以查找出現(xiàn)的真實次數(shù),比如重復(fù)了4次,就能找到4.具體的用途自己思考咯.
構(gòu)建包含變量的正則的方法new RegExp(arr[i],"g")也是問別人才問出來的.
其實我先想到的是第二個思路,正則的問題困擾半天,終于解決了.才想到第一個思路的.
以上所述是小編給大家介紹的JavaScript判斷數(shù)組重復(fù)內(nèi)容的兩種方法(推薦),希望能夠幫助到大家!
- JS判斷數(shù)組里是否有重復(fù)元素的方法小結(jié)
- JS 判斷某變量是否為某數(shù)組中的一個值的3種方法(總結(jié))
- JavaScript判斷數(shù)組是否包含指定元素的方法
- JavaScript判斷變量是否為數(shù)組的方法(Array)
- JS判斷元素是否在數(shù)組內(nèi)的實現(xiàn)代碼
- JS判斷數(shù)組中是否有重復(fù)值得三種實用方法
- js判斷數(shù)據(jù)類型如判斷是否為數(shù)組是否為字符串等等
- js判斷數(shù)組是否包含某個字符串變量的實例
- js判斷是否為數(shù)組的函數(shù): isArray()
- JavaScript判斷數(shù)組的方法總結(jié)與推薦
相關(guān)文章
根據(jù)IP的地址,區(qū)分不同的地區(qū),查看不同的網(wǎng)站頁面的js代碼
在朋友的幫助下,找到一個比較方便的方法,就是把以下代碼,加入我們自己需要跳轉(zhuǎn)的頁面里,這樣做還是不錯的呢2013-02-02javascript 在firebug調(diào)試時用console.log的方法
當(dāng)你使用console.log()函數(shù)時,下面的firebug一定要打開,不然這函數(shù)在用firefox運行時無效且影響正常程序,如果用IE打開,將會出錯2012-05-05d3.js中冷門卻實用的內(nèi)置函數(shù)總結(jié)
D3.js是一個JavaScript庫,它可以通過數(shù)據(jù)來操作文檔。D3可以通過使用HTML、SVG和CSS把數(shù)據(jù)鮮活形象地展現(xiàn)出來。d3.js其實提供了很多內(nèi)置的函數(shù),可以卻被大家忽略了,下面這篇文章就來給大家詳細介紹了d3.js中冷門卻實用的一些內(nèi)置函數(shù),需要的朋友可以參考借鑒。2017-02-02JS與Ajax Get和Post在使用上的區(qū)別實例詳解
這篇文章主要介紹了JS與Ajax Get和Post在使用上的區(qū)別實例詳解的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06