日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

js數(shù)組去重的11種方法

瀏覽:233日期:2024-04-01 08:04:15

在實際工作或面試中,我們經(jīng)常會遇到“數(shù)組去重”問題,接下來就是使用js實現(xiàn)的數(shù)組去重的多種方法:

1.將數(shù)組的每一個元素依次與其他元素做比較,發(fā)現(xiàn)重復(fù)元素,刪除

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5]; console.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5, 5] function noRepeat1(arr) {for(var i = 0; i < arr.length-1; i++){ for(var j = i+1; j < arr.length; j++){if(arr[i]===arr[j]){ arr.splice(j,1); j--;} }}return arr; } var arr2 = noRepeat1(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8]

2.借助indexOf()方法判斷此元素在該數(shù)組中首次出現(xiàn)的位置下標(biāo)與循環(huán)的下標(biāo)是否相等

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5]; console.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5] function noRepeat2(arr) {for (var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) != i) {arr.splice(i,1);//刪除數(shù)組元素后數(shù)組長度減1后面的元素前移i--;//數(shù)組下標(biāo)回退 }}return arr; } var newArr = noRepeat2(arr); console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8]

3.利用數(shù)組中的filter方法

var arr = [’apple’,’banana’,’pear’,’apple’,’orange’,’orange’];console.log(arr) //['apple', 'banana', 'pear', 'apple', 'orange', 'orange']var newArr = arr.filter(function(value,index,self){ return self.indexOf(value) === index;});console.log(newArr); //['apple', 'banana', 'pear', 'orange']

4.借助新數(shù)組 通過indexOf方判斷當(dāng)前元素在數(shù)組中的索引如果與循環(huán)的下標(biāo)相等則添加到新數(shù)組中

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5]; console.log(arr) //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5] function noRepeat4(arr) {var ret = [];for (var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) == i) {ret.push(arr[i]); }}return ret; } var arr2 = noRepeat4(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8]

5.利用空對象來記錄新數(shù)組中已經(jīng)存儲過的元素

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; console.log(arr) //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] var obj={}; var newArr=[]; for(var i=0;i<arr.length;i++){if(!obj[arr[i]]){ obj[arr[i]]=true; newArr.push(arr[i]);} } console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8]

6.借助新數(shù)組,判斷新數(shù)組中是否存在該元素如果不存在則將此元素添加到新數(shù)組中

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; console.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] function noRepeat6(arr){var newArr = [];for(var i = 0; i < arr.length; i++){ if(newArr.indexOf(arr[i]) == -1){newArr.push(arr[i]); }}return newArr; } var arr2 = noRepeat6(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 9, 8]

7.借助新數(shù)組,判斷新數(shù)組中是否存在該元素如果不存在則將此元素添加到新數(shù)組中(原數(shù)組長度不變但被按字符串順序排序)

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; console.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] function noRepeat7(arr) {var ret = [], end;//臨時變量用于對比重復(fù)元素arr.sort();//將數(shù)重新組排序end = arr[0];ret.push(arr[0]);for (var i = 1; i < arr.length; i++) { if (arr[i] != end) {//當(dāng)前元素如果和臨時元素不等則將此元素添加到新數(shù)組中ret.push(arr[i]);end = arr[i]; }}return ret; } var arr2 = noRepeat7(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 8, 9]

8.此方法沒有借助新數(shù)組直接改變原數(shù)組,并且去重后的數(shù)組被排序

var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; console.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5] function noRepeat8(arr) {var end;//臨時變量用于對比重復(fù)元素arr.sort();//將數(shù)重新組排序end = arr[0];for (var i = 1; i < arr.length; i++) { if (arr[i] == end) {//當(dāng)前元素如果和臨時元素相等則將此元素從數(shù)組中刪除arr.splice(i,1);i--; }else{end = arr[i]; }}return arr; } var arr2 = noRepeat8(arr); console.log(arr2); //[1, 23, 3, 5, 6, 7, 8, 9]

9.雙層循環(huán)改變原數(shù)組

var arr = [1,1,2,2,3,3,4,4,5,5,4,3,1,2,6,6,6,6]; console.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 1, 2, 6, 6, 6, 6] function noRepeat9(arr){for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr.length; j++) {if (arr[i] == arr[j] && i != j) {//將后面重復(fù)的數(shù)刪掉 arr.splice(j, 1);} }}return arr; } var arr2 = noRepeat9(arr); console.log(arr2); //[1, 2, 3, 4, 5, 6]

10.借助新數(shù)組

var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1]; console.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1] var newArr = []; for (var i = 0; i < arr.length; i++) {var repArr = [];//接收重復(fù)數(shù)據(jù)后面的下標(biāo)//內(nèi)層循環(huán)找出有重復(fù)數(shù)據(jù)的下標(biāo)for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) {repArr.push(j);//找出后面重復(fù)數(shù)據(jù)的下標(biāo) }}//console.log(repArr);if (repArr.length == 0) {//若重復(fù)數(shù)組沒有值說明其不是重復(fù)數(shù)據(jù) newArr.push(arr[i]);} } console.log(newArr); //[5, 4, 3, 2, 1]

11.借助ES6提供的Set結(jié)構(gòu)

var arr = [1,1,2,2,3,3,4,4,5,5,4,3,2,1,1,1]; console.log(arr); //[1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 4, 3, 2, 1, 1, 1] function noRepeat11(arr){var newArr = [];var myset = new Set(arr);//利用了Set結(jié)構(gòu)不能接收重復(fù)數(shù)據(jù)的特點for(var val of myset){ newArr.push(val)}return newArr; } var arr2 = noRepeat11(arr) console.log(arr2); //[1, 2, 3, 4, 5]

以上就是js數(shù)組去重的11種方法的詳細內(nèi)容,更多關(guān)于js數(shù)組去重的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品99视频| 精品入口麻豆88视频| 亚洲欧洲日本mm| 欧美日韩一区二区高清| 日韩一区二区三区高清在线观看| 日韩大片在线播放| а√在线中文在线新版| 国产一区调教| 香蕉精品久久| 午夜日本精品| 欧美日韩夜夜| 国产日韩欧美中文在线| 免费久久99精品国产| 亚洲影院天堂中文av色| 丝袜脚交一区二区| 亚洲激情偷拍| 日韩精品影视| 久久亚洲成人| 夜夜嗨av一区二区三区网站四季av| 伊人久久国产| 国产精品多人| 精品网站999| 久久精品亚洲欧美日韩精品中文字幕| 中文字幕在线看片| 免费av一区| 久久电影一区| 蜜臀久久99精品久久久久宅男 | 欧美.日韩.国产.一区.二区| 亚洲永久字幕| 一区二区三区国产在线| 亚洲深深色噜噜狠狠爱网站 | 日韩影院精彩在线| 亚洲一区二区毛片| 成人午夜毛片| 国产成人精品亚洲线观看 | 深夜福利亚洲| 国产精品白浆| 国产suv精品一区二区四区视频| 桃色一区二区| 少妇精品久久久一区二区三区| 欧美亚洲二区| 亚洲精品一区二区妖精| 手机在线电影一区| 99视频一区| 日韩美女国产精品| 国产高清不卡| 亚洲免费专区| 久久久一本精品| 久久国产99| 国产成人免费| 日韩影院免费视频| 国内精品麻豆美女在线播放视频| 色婷婷精品视频| 丝袜美腿高跟呻吟高潮一区| 欧美国产另类| 亚洲欧美伊人| 精品国产美女a久久9999| 久久久噜噜噜| 日本亚洲视频| 欧美午夜精彩| av高清不卡| 欧美激情另类| 日韩不卡在线观看日韩不卡视频| 夜久久久久久| 亚洲区国产区| 久久精品女人| 日韩国产欧美一区二区| www成人在线视频| 亚洲精品va| 久久亚洲黄色| 九九九精品视频| 亚洲综合电影| 都市激情国产精品| 亚洲www啪成人一区二区| 国产精品成人国产| 美女视频黄免费的久久| 国产精品啊啊啊| 国产精品久久亚洲不卡| 日韩不卡手机在线v区| 中文字幕亚洲影视| 亚洲综合国产| 日韩精品乱码av一区二区| 婷婷成人av| 国产不卡人人| 日本精品在线中文字幕| 亚洲精品视频一二三区| 国产精品www.| 久久精品一区二区三区中文字幕| 美女性感视频久久| 国产一区二区三区亚洲综合| 在线看片福利| 性色一区二区| 久久国内精品自在自线400部| 久久精品理论片| 一区免费在线| 久久国产日本精品| 久久三级中文| 国产伦理久久久久久妇女| 日韩国产在线观看一区| 麻豆精品久久| 九九在线精品| 欧美在线看片| 国产一区二区三区国产精品| 国产传媒av在线| 天堂va蜜桃一区二区三区| 久久精品72免费观看| 日韩电影免费网址| 日韩久久一区| 亚洲网站视频| 国产精品chinese| 黄色不卡一区| 国产精品欧美大片| 欧美日韩国产高清电影| 国产精品一线| 欧美性感美女一区二区 | 色婷婷精品视频| 伊人成人网在线看| 麻豆一区二区三区| 蜜臀国产一区二区三区在线播放 | 成人午夜在线| 日韩精品亚洲专区在线观看| 日韩一区二区中文| 久久99久久人婷婷精品综合| 热久久国产精品| 激情婷婷综合| 久久激情中文| 狠狠久久伊人| 精品国产aⅴ| 午夜性色一区二区三区免费视频| 亚洲日本网址| 岛国av在线播放| 成人国产精品久久| 精品中文字幕一区二区三区| 黄色在线观看www| 欧美在线不卡| 伊人久久亚洲影院| 亚洲成人一区在线观看| 久久久免费人体| 久久激情综合网| 美女网站久久| 久久国产中文字幕| 精品国产一区二区三区噜噜噜| 国产精品欧美三级在线观看| 中文字幕亚洲影视| 亚洲美洲欧洲综合国产一区 | 欧美a级一区| 精品国产午夜肉伦伦影院| 日韩国产91| 日韩中文字幕无砖| 国产日本精品| 国产欧美日韩精品高清二区综合区 | 日本a级不卡| 日韩精品第一| 亚洲精品进入| 男女男精品视频网| 亚洲人妖在线| 日韩精品免费观看视频| 蜜臀久久99精品久久久画质超高清| 日韩和欧美一区二区三区| 男女男精品网站| 日本不卡不码高清免费观看| 亚洲日本欧美| 国产精选久久| 成人日韩在线| 亚洲精品国产偷自在线观看| 欧美女激情福利| 青草av.久久免费一区| 国产精品久久乐| 激情综合自拍| 欧美国产91| 日韩1区2区日韩1区2区| 国产精品mv在线观看| 91亚洲国产成人久久精品| 丝袜国产日韩另类美女| 国产精品久久久久久模特| 91亚洲国产高清| 久久国产精品毛片| 日韩高清二区| 日本蜜桃在线观看视频| 中文在线免费视频| 中文一区一区三区免费在线观 | 久久不见久久见国语| 国产成人精品一区二区三区视频| 日韩视频一区| 国产伦理一区| 91精品成人| 欧美sss在线视频| 91成人在线| 久久九九精品| 国产精品中文字幕制服诱惑| 99免费精品| 国产精品麻豆成人av电影艾秋 | 亚洲精品伊人| 水蜜桃精品av一区二区| 久久亚洲风情| 另类av一区二区| 亚洲爱爱视频| 久久精品伊人| 久久久久伊人| 国产福利亚洲|