Rumah > masalah biasa > teks badan

Bagaimana untuk mengalih keluar pendua daripada tatasusunan js

百草
Lepaskan: 2023-07-05 11:32:40
asal
1730 orang telah melayarinya

Kaedah untuk menyahduplikasi tatasusunan js: 1. Kaedah "Set()" yang disediakan oleh ES6; 2. Kaedah "penapis()" 3. Gunakan gelung untuk dengan kaedah "indexOf()"; tatasusunan Setiap elemen dibandingkan dengan elemen lain secara bergilir-gilir, dan unsur pendua dipadamkan 5. Buat tatasusunan kosong baharu, gunakan kaedah "indexOf()" untuk menentukan indeks unsur semasa dalam tatasusunan, dan jika ia adalah; sama seperti subskrip gelung, tambahkannya ke dalam tatasusunan 6. Gandakan untuk gelung 7. kaedah "termasuk()".

Bagaimana untuk mengalih keluar pendua daripada tatasusunan js

Sistem pengendalian tutorial ini: sistem windows10, versi JavaScript ECMAScript 2023, komputer DELL G3.

1. Gunakan struktur Set new Set() yang disediakan oleh ES6 Ianya mudah dan mudah digunakan

Secara langsung masukkannya ke dalam array baru dan gunakan operator sambungan 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);
Salin selepas log masuk

2. ) untuk mengalih keluar kaedah pendua

filter( ) mencipta tatasusunan baharu, dan elemen dalam tatasusunan baharu disemak untuk semua elemen dalam tatasusunan yang ditetapkan yang memenuhi syarat. item ialah nilai elemen semasa, dan indeks ialah nilai indeks elemen semasa. Kaedah indexOf() mengembalikan kejadian pertama nilai rentetan yang ditentukan dalam rentetan. Gunakan indexOf() untuk menanyakan subskrip tatasusunan untuk melihat sama ada ia sama dengan subskrip semasa Jika sama, kembalikannya, jika tidak, tiada nilai akan dikembalikan.

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);
Salin selepas log masuk

3 Gunakan untuk gelung dengan indexOf untuk membuang pendua

 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);
Salin selepas log masuk

4 Bandingkan setiap elemen tatasusunan dengan elemen lain secara bergilir-gilir dan cari elemen pendua adalah menyusahkan

 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);
Salin selepas log masuk

5 kaedah indexOf Tentukan indeks elemen semasa dalam tatasusunan Jika ia sama dengan subskrip gelung, tambahkannya pada tatasusunan baharu

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);
Salin selepas log masuk

6 Gunakan dua kali untuk gelung

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);
Salin selepas log masuk

7 deduplikasi

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));
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar pendua daripada tatasusunan js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan