国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

js數(shù)組去重的方法總結(jié)

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:01:53
文檔

js數(shù)組去重的方法總結(jié)

js數(shù)組去重的方法總結(jié):一、普通的方法去重 1、簡單的去重方法 // 最簡單數(shù)組去重法 /* * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進該新數(shù)組中 * IE8以下不支持數(shù)組的indexOf方法 */ function uniq(array){ var temp = []; //一個新的臨時數(shù)組 for(v
推薦度:
導(dǎo)讀js數(shù)組去重的方法總結(jié):一、普通的方法去重 1、簡單的去重方法 // 最簡單數(shù)組去重法 /* * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進該新數(shù)組中 * IE8以下不支持數(shù)組的indexOf方法 */ function uniq(array){ var temp = []; //一個新的臨時數(shù)組 for(v

一、普通的方法去重

1、簡單的去重方法

// 最簡單數(shù)組去重法
/*
* 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進該新數(shù)組中
* IE8以下不支持數(shù)組的indexOf方法
*/
function uniq(array){
 var temp = []; //一個新的臨時數(shù)組
 for(var i = 0; i < array.length; i++){
 if(temp.indexOf(array[i]) == -1){
 temp.push(array[i]);
 }
 }
 return temp;
}
var newArray = [1,2,2,4,9,6,7,5,2,3,5,6,5];
console.log(uniq(newArray));// [1, 2, 4, 9, 6, 7, 5, 3]
/*
var newArray = ['mu','zi','dig','big','z','mu','zi','muzidigbig']
console.log(uniq(newArray));//["mu", "zi", "dig", "big", "z", "muzidigbig"]
*/

2、數(shù)組下標法

/*
* 還是得調(diào)用“indexOf”性能跟方法1差不多,
* 實現(xiàn)思路:如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i,
* 那么表示第i項是重復(fù)的,忽略掉。否則存入結(jié)果數(shù)組。
*/
function uniq(array){
 var temp = [];
 for(var i = 0; i < array.length; i++) {
 //如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置是i,才存入數(shù)組;否則代表是重復(fù)的
 if(array.indexOf(array[i]) == i){
 temp.push(array[i])
 }
 }
 return temp;
}
var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(uniq(aa));//[1, 2, "2", 4, 9, "a", 3, 5, 6]

3、排序后相鄰去除法

/*
* 給傳入數(shù)組排序,排序后相同值相鄰,
* 然后遍歷時,新數(shù)組只加入不與前一值重復(fù)的值。
* 會打亂原來數(shù)組的順序
*/
function uniq(array){
 array.sort();
 console.log(array.sort());
 var temp=[array[0]];
 for(var i = 1; i < array.length; i++){
 if( array[i] !== temp[temp.length-1]){
 temp.push(array[i]);
 }
 }
 return temp;
}
var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(uniq(aa));//[1, "2", 2, 3, 4, 5, 6, 9, "a"]

4、優(yōu)化遍歷數(shù)組法

// 思路:獲取沒重復(fù)的最右一值放入新數(shù)組
/*
* 推薦的方法
* 方法的實現(xiàn)代碼相當酷炫,
* 實現(xiàn)思路:獲取沒重復(fù)的最右一值放入新數(shù)組。
* (檢測到有重復(fù)值時終止當前循環(huán)同時進入頂層循環(huán)的下一輪判斷)
*/
function uniq(array){
 var temp = [];
 var index = [];
 var l = array.length;
 for(var i = 0; i < l; i++) {
 for(var j = i + 1; j < l; j++){
 if (array[i] === array[j]){
 i++;
 j = i;
 }
 }
 temp.push(array[i]);
 index.push(i);
 }
 console.log(index);//[0, 2, 5, 6, 7, 8, 9]
 return temp;
}
var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
console.log(uniq(aa));// [1, 2, 3, 6, 5, "3", "muzi"]

5.數(shù)組includes()去重

//利用數(shù)組原型對象上的includes方法
function unique(arr){
 var bArr= [];
 for(var i=0; i<arr.length; i++){
 if( !bArr.includes(arr[i]) ){ // 如果bArr新數(shù)組包含當前循環(huán)item
 bArr.push(arr[i]);
 }
 }
 return bArr;
}
var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
console.log(unique(aa))//[1, 2, 3, 5, 6, "3", "muzi"]

6.數(shù)組原型對象上的filter和includes方法

//利用數(shù)組原型對象上的filter和includes方法
function unique6(arr){
 var bArr= [];
 bArr= arr.filter(function(item){
 return bArr.includes(item) ? null : bArr.push(item);
 });
 return bArr;
}
var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
console.log(unique6(aa))//[1, 2, 3, 5, 6, "3", "muzi"]

7.數(shù)組原型對象上的forEach和includes方法

//利用數(shù)組原型對象上的forEach和includes方法
function unique7(arr){
 var bArr= [];
 arr.forEach(function(item){
 bArr.includes(item) ? null : bArr.push(item);
 }); 
 return bArr;
}
var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
console.log(unique7(aa))//[1, 2, 3, 5, 6, "3", "muzi"]

二、原型對象去重

方法一:

思路:1)構(gòu)建一個臨時數(shù)組存放結(jié)果;

            2)循環(huán)遍歷當前數(shù)組,判斷當前數(shù)組下標為i的元素是否已經(jīng)保存在臨時數(shù)組,如果已保存,則跳過,否則將此元素保存到臨時數(shù)組中。

 Array.prototype.method1 = function(){
 var arr=[]; //定義一個臨時數(shù)組
 for(var i = 0; i < this.length; i++){ //循環(huán)遍歷當前數(shù)組
 //判斷當前數(shù)組下標為i的元素是否已經(jīng)保存到臨時數(shù)組
 //如果已保存,則跳過,否則將此元素保存到臨時數(shù)組中
 if(arr.indexOf(this[i]) == -1){
 arr.push(this[i]);
 }
 }
 return arr;
 };
 var arrNum1 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,'muzi','digbig','muzi'];
 console.log(arrNum1.method1());//[1, 4, 3, 6, 7, 8, 0, 2, 11, "muzi", "digbig"]

三、es6去重

 let arr = [1,2,2,3,4,4,4];
 let s = new Set(arr);
 //結(jié)果:Set {1,2,3,4}
 let newArr = Array.from(s);
 //結(jié)果:[1,2,3,4],完成去重

若有不足請多多指教!希望給您帶來幫助!

總結(jié)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

js數(shù)組去重的方法總結(jié)

js數(shù)組去重的方法總結(jié):一、普通的方法去重 1、簡單的去重方法 // 最簡單數(shù)組去重法 /* * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進該新數(shù)組中 * IE8以下不支持數(shù)組的indexOf方法 */ function uniq(array){ var temp = []; //一個新的臨時數(shù)組 for(v
推薦度:
標簽: 方法 js 總結(jié)
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 免费又黄又爽又猛大片午夜 | 亚洲欧美高清 | 亚洲 欧美 自拍 另类 | 天天躁夜夜躁狠狠躁躁88 | 国产成人黄网址在线视频 | 成人国产一区二区 | 久久精品亚洲一区二区三区浴池 | 99精品国产成人一区二区 | 国产线视频精品免费观看视频 | 亚洲一区日韩二区欧美三区 | 亚洲国产精品热久久2022 | 手机在线国产视频 | 久久精品a亚洲国产v高清不卡 | 欧美中日韩在线 | 91在线一区二区三区 | 97一区二区三区四区久久 | 国产网站在线 | 亚洲图片在线观看 | 欧美专区日韩 | 全黄a一级毛片 | 国产欧美曰韩一区二区三区 | www.亚洲欧美 | 国产一区二区日韩欧美在线 | 欧美91精品久久久久网免费 | 国产精品成人久久久久 | 精品一区二区三区3d动漫 | 国产播放器一区 | 国产一区二区精品久久凹凸 | 国产成人拍精品视频网 | 久久亚洲伊人中字综合精品 | 国内精品久久久久久中文字幕 | 国产中文在线观看 | 亚洲 欧美 国产另类首页 | 黄色一级a毛片 | 国产日韩欧美第一页 | 亚洲国产欧美日韩精品一区二区三区 | 国产欧美另类第一页 | 久久999| 99久久精品国产亚洲 | 久久伊人一区二区三区四区 | 日韩亚洲国产综合久久久 |