搜尋
首頁常見問題js數組怎麼去重

js數組怎麼去重

Jul 05, 2023 am 11:32 AM
javascript數組去重

js陣列去重的方法:1、ES6提供的「new Set()」方法;2、「filter()」方法;3、使用for循環,搭配「indexOf()」方法;4 、將數組的每一個元素依序與其他元素比較,有重複元素就刪除;5、創建新的空數組,使用「indexOf()」方法判斷當前元素在數組中的索引,如果與循環的下標相同則加到新數組中;6、雙重for迴圈;7、「includes()」方法。

js數組怎麼去重

本教學作業系統:windows10系統、JavaScript ECMAScript 2023版本、DELL G3電腦。

1、借助ES6提供的Set結構new Set() 簡單好用強烈推薦

#直接給一個新的陣列裡面,利用es6的延展運算子

 var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22];
 
  console.log(arr);   
 
  function noRepeat(arr){
 
    var newArr = [...new Set(arr)]; //利用了Set结构不能接收重复数据的特点
 
    return newArr
 
  }
 
  var arr2 = noRepeat(arr)
 
  console.log(arr2);

2.利用filter() 去重

filter() 方法建立一個新的數組,新數組中的元素是透過檢查指定數組中符合條件的所有元素。 item是目前元素的值,index是目前元素的索引值。 indexOf() 方法可傳回某個指定的字串值在字串中首次出現的位置。利用indexOf() 查詢到數組的下標,看是否等於當前的下標,相等的話就返回,否則不回傳值。

var arr = ['apple','apps','pear','apple','orange','apps'];
 
console.log(arr)    
  var newArr = arr.filter(function(item,index){
     return arr.indexOf(item) === index;  // 因为indexOf 只能查找到第一个  
  });
 
console.log(newArr);

3、利用for 迴圈搭配indexOf 去重

 var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22];
 function noRepeat(arr) {
//定义一个新的临时数组 
var newArr=[]; 
//遍历当前数组 
for(var i=0;i<arr.length;i++) {
  //如果当前数组的第i已经保存进了临时数组,那么跳过,
  //否则把当前项push到临时数组里面 
  if(newArr.indexOf(arr[i]) === -1) {  //indexOf() 判断数组中有没有字符串值,如果没有则返回 -1 
     newArr.push(arr[i]);
  }
    }
    return newArr
  }
  var arr2 = noRepeat(arr);
  console.log(arr2);

4、將陣列的每一個元素依序與其他元素做比較,發現重複元素,刪除比較繁瑣不推薦

 var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22];
 console.log(arr);    
 function noRepeat(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 = noRepeat(arr);
 console.log(arr2);

5、借助新數組透過indexOf 方法判斷當前元素在數組中的索引,如果與循環的下標相等則添加到新數組中

var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22];
    console.log(arr)    
    function noRepeat(arr) {
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr.indexOf(arr[i]) == i) {
              newArr.push(arr[i]);
            }
        }
        return newArr;
    }
   var arr2 = noRepeat(arr);
   console.log(arr2);

6、利用雙重for循環

var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22];
console.log(arr);    
function noRepeat(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  = noRepeat(arr);
console.log(arr2);

7、利用includes實作陣列去重

var arr = [1,9,8,8,7,2,5,3,3,3,2,3,1,4,5,444,55,22];
    function noRepeat(arr) {
      let newArr = [];
      for(i=0; i<arr.length; i++){
        if(!newArr.includes(arr[i])){
            newArr.push(arr[i])
        }
      }
     return newArr
   }
 console.log(noRepeat(arr));

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器