詳解JavaScript數(shù)組過濾相同元素的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);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
鼠標(biāo)拖動(dòng)改變DIV等網(wǎng)頁元素的大小的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄髽?biāo)拖動(dòng)改變DIV等網(wǎng)頁元素的大小的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
js中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)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
javascript原型鏈學(xué)習(xí)記錄之繼承實(shí)現(xiàn)方式分析
這篇文章主要介紹了javascript原型鏈學(xué)習(xí)記錄之繼承實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了javascript使用原型鏈實(shí)現(xiàn)繼承的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-05-05
JavaScript iframe數(shù)據(jù)共享接口實(shí)現(xiàn)方法
在iframe與父窗口或者與子窗口傳遞數(shù)據(jù)是一個(gè)麻煩的事情,如果我們能夠?qū)懸粋€(gè)一勞永逸的接口那就再方便不過了,下面就來簡答介紹一下如何實(shí)現(xiàn)此功能,對js iframe相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
Webpack中l(wèi)oader打包各種文件的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Webpack中l(wèi)oader打包各種文件的相關(guān)資料,其中包括處理css文件、less文件、scss文件、url地址以及ES6高級(jí)語法的方法,需要的朋友可以參考下2019-09-09

