国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

史上最全JavaScript數組去重的十種方法(推薦)

2024-05-06 15:12:45
字體:
來源:轉載
供稿:網友

一、前言:

我們在實際工作中,或者在面試找工作時,都會用到或者被問到一個問題,那就是“數組如何去重”。是的,這個問題有很多種解決方案,看看下面的十種方式吧!

二、數組去重方式大匯總:

Methods 1: 思路:定義一個新數組,并存放原數組的第一個元素,然后將元素組一一和新數組的元素對比,若不同則存放在新數組中。

function unique(arr){ var res = [arr[0]]; for(var i=1; i<arr.length; i++){  var repeat = false;  for(var j=0; j<res.length; j++){   if(arr[i] === res[j]){    repeat = true;    break;   }  }  if(!repeat){   res.push(arr[i]);  } } return res;}console.log('------------方法一---------------');console.log(unique([1,1,2,3,5,3,1,5,6,7,4]));

Methods 2: 思路:先將原數組排序,在與相鄰的進行比較,如果不同則存入新數組。

function unique2(arr){ var arr2 = arr.sort(); var res = [arr2[0]]; for(var i=1; i<arr2.length; i++){  if(arr2[i] !== res[res.length-1]){   res.push(arr2[i]);  } }  return res;}console.log('------------方法二---------------');console.log(unique2([1,1,2,3,5,3,1,5,6,7,4]));

Methods 3: 利用對象屬性存在的特性,如果沒有該屬性則存入新數組。

function unique3(arr){ var res = []; var obj = {}; for(var i=0; i<arr.length; i++){  if( !obj[arr[i]] ){   obj[arr[i]] = 1;   res.push(arr[i]);  } }  return res;}console.log('------------方法三---------------');console.log(unique3([1,1,2,3,5,3,1,5,6,7,4]));

Methods 4: 利用數組的indexOf下標屬性來查詢。

function unique4(arr){ var res = []; for(var i=0; i<arr.length; i++){  if(res.indexOf(arr[i]) == -1){   res.push(arr[i]);  } } return res;}console.log('------------方法四---------------');console.log(unique4([1,1,2,3,5,3,1,5,6,7,4]));

Methods 5: 利用數組原型對象上的includes方法。

function unique5(arr){ var res = [];  for(var i=0; i<arr.length; i++){  if( !res.includes(arr[i]) ){ // 如果res新數組包含當前循環item   res.push(arr[i]);  } } return res;}console.log('------------方法五---------------');console.log(unique5([1,1,2,3,5,3,1,5,6,7,4]));

Methods 6: 利用數組原型對象上的 filter 和 includes方法。

function unique6(arr){ var res = [];  res = arr.filter(function(item){  return res.includes(item) ? '' : res.push(item); }); return res;}console.log('------------方法六---------------');console.log(unique6([1,1,2,3,5,3,1,5,6,7,4]));

Methods 7: 利用數組原型對象上的 forEach 和 includes方法。

function unique7(arr){ var res = [];  arr.forEach(function(item){  res.includes(item) ? '' : res.push(item); });  return res;}console.log('------------方法七---------------');console.log(unique7([1,1,2,3,5,3,1,5,6,7,4]));            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南皮县| 萨迦县| 云梦县| 临猗县| 台中县| 余江县| 鄂尔多斯市| 安泽县| 清流县| 邵武市| 凭祥市| 古丈县| 开阳县| 保靖县| 双峰县| 绿春县| 哈密市| 台江县| 将乐县| 治县。| 丰宁| 融水| 拜泉县| 娄底市| 西华县| 清新县| 昂仁县| 浏阳市| 清流县| 禹城市| 泾阳县| 梓潼县| 桂东县| 静海县| 久治县| 浦城县| 江山市| 宁波市| 泰安市| 凤山市| 维西|