JavaScript判斷數組重複內容的兩種方法(推薦)_javascript技巧

來源:互聯網
上載者:User

前言

一般,我們可能會給數組去重,這個操作並不複雜,執行一個迴圈就是了.現在,我要做的是,判斷數組中是否有重複的內容,如果有,返回 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判斷數組重複內容的兩種方法(推薦),希望能夠協助到大家!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.