国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript判斷數組重復內容的兩種方法(推薦)

2019-11-20 09:46:43
字體:
來源:轉載
供稿:網友

前言

一般,我們可能會給數組去重,這個操作并不復雜,執行一個循環就是了.現在,我要做的是,判斷數組中是否有重復的內容,如果有,返回 true 否則,返回 false.

思路

把數組變成字符串

循環原數組,拿每一個字段和這個字符串進行比對,看是否有重復

如何拿A字符串和B字符串進行對比,并且要求判斷出B字符串中包含過個A字符串呢?

方法一 indexOf() 和 lastIndexOf() 對比法.

首先,我們構建代碼:

var arr = ["aa","bb","cc","bb","aa"];arrRepeat(arr);

如上,我們要用一個arrRepeat(arr)的校驗函數并執行,下面來構建這個函數

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,運行成功.

運行結果

原理特別簡單,就是,數組中的字段,在由數組變成的字符串中的首次出現位置和最后一次出現位置是否一致,如果不一致,就說明這個重復出現了.

方法二 match() 正則對比方法

首先,和上面一樣,我們構建代碼:

var arr = ["aa","bb","cc","bb","aa"];arrRepeat(arr);

然后,我們重新構建arrRepeat(arr)函數

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;}

原理是查找確定的重復次數,如果是大于1的話,就肯定是重復了.注意,這里是能夠準確的查找出出現了幾次的哦!所以,這個方法其實有更廣泛的用途.

OK,運行又一次成功

運行結果二

總結

如果僅僅是比對第一個方法其實足夠用了.

第二個方法可以查找出現的真實次數,比如重復了4次,就能找到4.具體的用途自己思考咯.

構建包含變量的正則的方法new RegExp(arr[i],"g")也是問別人才問出來的.

其實我先想到的是第二個思路,正則的問題困擾半天,終于解決了.才想到第一個思路的.

以上所述是小編給大家介紹的JavaScript判斷數組重復內容的兩種方法(推薦),希望能夠幫助到大家!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 英吉沙县| 红安县| 兰溪市| 西昌市| 罗平县| 余庆县| 凤城市| 巴林右旗| 白水县| 句容市| 永仁县| 襄垣县| 扬中市| 龙岩市| 独山县| 红安县| 卢湾区| 寻乌县| 三河市| 华蓥市| 恩平市| 长治市| 巴中市| 金塔县| 饶河县| 枣阳市| 隆子县| 读书| 青冈县| 观塘区| 方正县| 乌拉特后旗| 博罗县| 巨鹿县| 西林县| 静宁县| 湖南省| 公主岭市| 沈丘县| 英吉沙县| 克拉玛依市|