詳解JavaScript數(shù)組過(guò)濾相同元素的5種方法
方法一:比較內(nèi)層循環(huán)變量的值.
var arr = [1, 2, 3, 1, 3, 4, 5, 5]; var resultArr = []; for (i = 0; i < arr.length; i++) { for (j = 0; j < resultArr.length; j++) { if (resultArr[j] == arr[i]) { break; } } if (j == resultArr.length) { resultArr[resultArr.length] = arr[i]; } } console.log(resultArr); //1,2,3,4,5
方法二:計(jì)數(shù)法.
var arr = [1, 2, 3, 1, 3, 4, 5, 5]; var count; var resultArr = []; for (i = 0; i < arr.length; i++) { count = 0; for (j = 0; j < resultArr.length; j++) { if (resultArr[j] == arr[i]) { count++; break; } } if (count == 0) { resultArr[resultArr.length] = arr[i]; } } console.log(resultArr); //1,2,3,4,5
方法三:flag標(biāo)志法(也叫假設(shè)成立法)
var arr = [1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr = []; //[1,2,3] var flag; for (var i = 0; i < arr.length; i++) { flag = true; for (j = 0; j < resultArr.length; j++) { if (resultArr[j] == arr[i]) { flag = false; break; } } if (flag) { resultArr[resultArr.length] = arr[i]; } } console.log(resultArr);//1,2,3,4,5
方法四:使用sort()方法排序后比較
var arr = [1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr = []; arr.sort(function (a, b) { return a - b; }); //這個(gè)時(shí)候arr變成了[1, 1, 2, 2, 3, 3, 4, 5, 5] for (i = 0; i < arr.length; i++) { if (arr[i] != arr[i + 1]) { resultArr[resultArr.length] = arr[i]; } } console.log(resultArr);
方法五:使用filter()方法篩選掉重復(fù)的數(shù)組
var arr = [1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr; resultArr = arr.filter(function (item, index, self) { return self.indexOf(item) == index; }); console.log(resultArr);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
鼠標(biāo)拖動(dòng)改變DIV等網(wǎng)頁(yè)元素的大小的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇鼠標(biāo)拖動(dòng)改變DIV等網(wǎng)頁(yè)元素的大小的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07js中textContent、innerText和innerHTML的用法以及區(qū)別
這篇文章主要介紹了JavaScript中textContent、innerText和innerHTML的用法以及區(qū)別,需要的朋友可以參考下2023-05-05微信小程序scroll-view點(diǎn)擊項(xiàng)自動(dòng)居中效果的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序scroll-view點(diǎn)擊項(xiàng)自動(dòng)居中效果的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03javascript原型鏈學(xué)習(xí)記錄之繼承實(shí)現(xiàn)方式分析
這篇文章主要介紹了javascript原型鏈學(xué)習(xí)記錄之繼承實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了javascript使用原型鏈實(shí)現(xiàn)繼承的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-05-05JavaScript iframe數(shù)據(jù)共享接口實(shí)現(xiàn)方法
在iframe與父窗口或者與子窗口傳遞數(shù)據(jù)是一個(gè)麻煩的事情,如果我們能夠?qū)懸粋€(gè)一勞永逸的接口那就再方便不過(guò)了,下面就來(lái)簡(jiǎn)答介紹一下如何實(shí)現(xiàn)此功能,對(duì)js iframe相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01Webpack中l(wèi)oader打包各種文件的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Webpack中l(wèi)oader打包各種文件的相關(guān)資料,其中包括處理css文件、less文件、scss文件、url地址以及ES6高級(jí)語(yǔ)法的方法,需要的朋友可以參考下2019-09-09