首頁 > web前端 > js教程 > javascript數組去重複的方法

javascript數組去重複的方法

藏色散人
發布: 2023-01-04 09:35:05
原創
8356 人瀏覽過

javascript數組去重複的方法:1.利用「indexOf()」方法去除重複值;2、利用splice方法去除重複值;3、利用es6新增的集合Set去除重複值。

javascript數組去重複的方法

本文操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

js陣列中移除重複值的幾種方法

在日常開發中,我們可能會遇到將一個陣列中裡面的重複值移除,那麼,我就將我自己所學到的幾種方法分享出來

去除數組重複值方法:

#1,利用indexOf()方法去除

想法:創建一個新數組,然後循環要去重的數組,然後用新數組去找要去重數組的值,如果找不到則使用.push添加到新數組,最後把新數組返回回去就行了

看不懂沒關係,上程式碼就比較容易懂了

function fun(arr){
 let newsArr = [];
 for (let i = 0; i < arr.length; i++) {
  if(newsArr.indexOf(arr[i]) === -1){
   newsArr.push(arr[i]);
  }
 }
 return newsArr;
}
登入後複製

2,利用splice方法去除

想法:這個方法有點模仿冒泡  兩層循環,外層循環遍歷數組,內層循環比較值,如果有相同, 則使用splice去除然後返回處理完的數組即可

#看不懂沒關係,上代碼就比較容易懂了

function fun(arr){
 for (let i = 0; i < arr.length; i++) {
  for(let j = i+1; j < arr.length; j++){
   if(arr[i]==arr[j]){
    arr.splice(j,1);          j--;
   }
  }
 }
 return arr;
}
登入後複製

3,利用es6新增的集合Set去除

這裡簡單介紹一下Set 集合,他跟數組很相識,但不是數組,是集合。他裡面也有跟多方法,如增(add),刪(delete),查(有)等等。

他最重要的特點是:元素不能重複,即在Set集合中不會出現相同的元素

#Set去重方案1:

思路:因為Set集合裡面不允許出現重複值,那我們就可以利用這個特點將我們的陣列傳進去去重

首先new一個Set集合將要去重的陣列作為參數傳進去,然後建立一個新數組,循環遍歷集合,將每個集合元素加入到新數組,最後將新數組傳回即可

function fun(arr){
 let s1 = new Set(arr);
 let arr2 = [];
 for(let item of s1){
  arr2.push(item);
 }
 return arr2;
}
登入後複製

Set去重方案2(使用數組方法Array.form()):

想法:Array.from(); 能夠​​把偽數組,集合轉成數組類型,這個方法配合上Set集合就剛好符合我們的需求

【推薦學習:javascript高級教程

function fun(arr){
 let s1 = new Set(arr); 
 return Array.from(s1);
}
登入後複製

Set去重方案3(使用es6展開運算子...):

想法:es6展開運算子能夠將一個陣列轉為用逗號分隔的參數序列

function fun(arr){
 let s1 = new Set(arr); 
 return [...s1];
}
登入後複製

以上是javascript數組去重複的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板