成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

js數組去重的11種方法

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

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

1.將數組的每一個元素依次與其他元素做比較,發現重復元素,刪除

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()方法判斷此元素在該數組中首次出現的位置下標與循環的下標是否相等

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);//刪除數組元素后數組長度減1后面的元素前移i--;//數組下標回退 }}return arr; } var newArr = noRepeat2(arr); console.log(newArr); //[1, 23, 3, 5, 6, 7, 9, 8]

3.利用數組中的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.借助新數組 通過indexOf方判斷當前元素在數組中的索引如果與循環的下標相等則添加到新數組中

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.利用空對象來記錄新數組中已經存儲過的元素

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.借助新數組,判斷新數組中是否存在該元素如果不存在則將此元素添加到新數組中

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

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;//臨時變量用于對比重復元素arr.sort();//將數重新組排序end = arr[0];ret.push(arr[0]);for (var i = 1; i < arr.length; i++) { if (arr[i] != end) {//當前元素如果和臨時元素不等則將此元素添加到新數組中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.此方法沒有借助新數組直接改變原數組,并且去重后的數組被排序

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;//臨時變量用于對比重復元素arr.sort();//將數重新組排序end = arr[0];for (var i = 1; i < arr.length; i++) { if (arr[i] == end) {//當前元素如果和臨時元素相等則將此元素從數組中刪除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.雙層循環改變原數組

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) {//將后面重復的數刪掉 arr.splice(j, 1);} }}return arr; } var arr2 = noRepeat9(arr); console.log(arr2); //[1, 2, 3, 4, 5, 6]

10.借助新數組

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 = [];//接收重復數據后面的下標//內層循環找出有重復數據的下標for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) {repArr.push(j);//找出后面重復數據的下標 }}//console.log(repArr);if (repArr.length == 0) {//若重復數組沒有值說明其不是重復數據 newArr.push(arr[i]);} } console.log(newArr); //[5, 4, 3, 2, 1]

11.借助ES6提供的Set結構

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結構不能接收重復數據的特點for(var val of myset){ newArr.push(val)}return newArr; } var arr2 = noRepeat11(arr) console.log(arr2); //[1, 2, 3, 4, 5]

以上就是js數組去重的11種方法的詳細內容,更多關于js數組去重的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
丝袜a∨在线一区二区三区不卡| 6080yy午夜一二三区久久| 欧美日韩中文字幕一区| 亚洲婷婷在线视频| 色综合视频一区二区三区高清| 日韩你懂的电影在线观看| 国内外成人在线| 在线免费精品视频| 日韩激情av在线| 香蕉久久国产| 亚洲视频在线观看一区| 亚洲香蕉视频| 国产精品色哟哟| 午夜欧美精品久久久久久久| 精品国产乱码久久久久久老虎| 国产精品一区2区| 欧美性色欧美a在线播放| 日本不卡123| 色狠狠色狠狠综合| 亚洲大片一区二区三区| 国产伦精品一区二区三区照片91 | 韩国一区二区三区在线观看| 国产婷婷色一区二区三区在线| 成人黄色免费短视频| 精品国产污污免费网站入口| 99久久精品情趣| 亚洲国产精品ⅴa在线观看| 91色porny| 国产精品伦一区| 亚洲一级一区| 亚洲一区二区三区精品在线| 国产伦理一区| 三级成人在线视频| 在线观看不卡一区| 国产美女在线精品| 日韩美女一区二区三区四区| 欧美在线3区| 自拍av一区二区三区| 亚洲精品九九| 午夜精品久久久久久久| 欧洲一区在线观看| 国产精品一二三四区| 2023国产精品| 伊人久久久大香线蕉综合直播| 一区二区三区在线影院| 久久字幕精品一区| 国产乱对白刺激视频不卡| 精品三级av在线| 亚洲欧美综合| 亚洲免费观看在线视频| 亚洲女同同性videoxma| 久久国产麻豆精品| 精品国产三级电影在线观看| 国内精品一区二区| 亚洲一区二区精品视频| 欧洲精品中文字幕| 成人动漫一区二区三区| 亚洲三级小视频| 91久久精品一区二区三区| 国产大片一区二区| 国产精品久久久久久久裸模| 午夜精品福利一区二区三区av| 亚洲欧洲日产国码二区| 不卡的看片网站| 一区二区国产精品| 欧美精品国产| 99国产精品99久久久久久| 日韩一级黄色片| 欧美精品自拍| 国产一本一道久久香蕉| 中文字幕在线观看一区二区| 亚洲欧美日韩精品在线| 欧美视频在线观看一区| 色狠狠一区二区三区香蕉| 永久91嫩草亚洲精品人人| 国产精品乱子乱xxxx| 久久精品中文| 国产女人水真多18毛片18精品视频 | 欧洲精品在线观看| 国产精品77777竹菊影视小说| 中文字幕欧美日本乱码一线二线| 亚洲综合日韩| 不卡av电影在线播放| 亚洲已满18点击进入久久| 欧美日韩一区二区不卡| 欧美成人中文| 美洲天堂一区二卡三卡四卡视频| 久久免费电影网| 麻豆久久精品| aaa亚洲精品| 一区二区三区资源| 欧美人动与zoxxxx乱| 在线成人h网| 国模套图日韩精品一区二区| 国产精品高潮呻吟久久| 欧美日韩一卡二卡三卡| 女女同性精品视频| 日韩av一区二区在线影视| 久久久久久麻豆| 在线观看免费视频综合| 欧美精品激情| 久久9热精品视频| 一区在线观看免费| 91精品国产色综合久久| 亚洲视频大全| 成人免费视频网站在线观看| 亚洲小少妇裸体bbw| 久久久91精品国产一区二区精品| 色婷婷久久一区二区三区麻豆| 91麻豆精品在线观看| 美女一区二区视频| 国产精品美女久久福利网站| 7777精品伊人久久久大香线蕉最新版| 在线视频亚洲| 99精品欧美一区二区蜜桃免费| 久久精品噜噜噜成人av农村| 亚洲另类春色国产| 久久色中文字幕| 欧美三级一区二区| 国产九区一区在线| 你懂的一区二区| 国产精品亚洲一区二区三区妖精| 亚洲成av人片一区二区| 国产精品色一区二区三区| 日韩欧美色综合| 欧美亚洲动漫另类| 国产精品久久一区二区三区| 欧美精品一区二区三区在线看午夜| 国产伦精品一区二区三区视频青涩| 视频在线观看一区二区三区| 亚洲欧美一区二区三区国产精品| 精品日韩欧美一区二区| 欧美性欧美巨大黑白大战| 国产日韩欧美三级| 欧美日韩一视频区二区| hitomi一区二区三区精品| 乱一区二区av| 亚洲成人av资源| 亚洲精品中文在线观看| 久久精品人人做人人爽人人| 91精品国产入口| 欧洲国产伦久久久久久久| 一区二区国产在线观看| 国产精品第十页| 91原创在线视频| av不卡在线观看| 成a人片国产精品| 成人免费精品视频| 国产不卡高清在线观看视频| 激情五月婷婷综合| 青椒成人免费视频| 一区二区三区成人| 亚洲丝袜自拍清纯另类| 欧美激情资源网| 久久久亚洲精品一区二区三区| 日韩色视频在线观看| 欧美精品日日鲁夜夜添| 欧美日韩电影在线| 欧美日韩国产另类不卡| 欧美在线看片a免费观看| 色综合久久久久综合体桃花网| 先锋影音国产精品| 亚洲伊人观看| 亚洲在线播放| 久久国产欧美精品| 亚洲一区激情| 国产欧美日韩在线播放| 亚洲精品在线二区| 亚洲国产精品日韩| 99国产精品久久久久久久| 亚洲国产欧美国产综合一区| 亚洲经典在线| 一区二区三区|亚洲午夜| 99视频一区| 香蕉久久夜色精品| 久久国产直播| 在线免费观看不卡av| 欧美性一级生活| 欧美日韩免费电影| 欧美浪妇xxxx高跟鞋交| 91精品国模一区二区三区| 91精品国产福利| 精品免费一区二区三区| 国产欧美一区二区三区网站| 国产亚洲一区字幕| 国产精品三级av在线播放| 亚洲精品视频在线看| 亚洲猫色日本管| 国产精品久久久久久久久久久免费看 | 亚洲欧美亚洲| 欧美日韩国产一区精品一区| 欧美午夜一区| 一区二区冒白浆视频| 乱人伦精品视频在线观看| 色婷婷激情综合| 欧美日韩一区二区不卡| 日韩精品一区二区三区在线| 久久久久久97三级| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲另类中文字|