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()".
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);
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);
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);
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);
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);
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);
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));
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!