Maison > Article > interface Web > Comment supprimer les doublons d'un tableau javascript
Méthode : 1. Utilisez l'instruction "[...new Set(arr)]" ; 2. Utilisez l'instruction "Array.from(new Set(arr))" ; 3. Utilisez les fonctions filter et indexOf ; .Utilisez double La boucle for vérifie si les valeurs sont dupliquées, et s'il y a des doublons, utilisez push() pour les supprimer.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
Méthode 1 : […new Set(arr)]
const arr = [1, 2, 3, 2, 3]; [...new Set(arr)]; // [1, 2, 3]
Méthode 2 : Array.from(new Set(arr))
const arr = [1, 2, 3, 2, 3]; Array.from(new Set(arr)); // [1, 2, 3]
Puisque les éléments de Set sont uniques, qu'il s'agisse de la valeur d'origine ou Il s'agit d'une référence d'objet, vous pouvez donc réaliser la déduplication en convertissant le tableau en un objet Set. La méthode Array.from peut convertir l'objet Set en un tableau.
Méthode 3 : Utilisez filter+ indexOffunction unique(arr) {
return arr.filter(function(item, index, arr) {
//当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
return arr.indexOf(item, 0) === index;
});
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]
La façon la plus simple de comprendre, la boucle externe traverse les éléments et la boucle interne vérifie s'il y a des doublons
Lorsqu'il y en a valeurs en double, vous pouvez utiliser push() ou splice()
function distinct(a, b) { let arr = a.concat(b); for (let i=0, len=arr.length; i<len; i++) { for (let j=i+1; j<len; j++) { if (arr[i] == arr[j]) { arr.splice(j, 1); // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一 len--; j--; } } } return arr }
Mais cette méthode prend beaucoup de mémoire et est la moins efficace
Méthode 5 : pour...de + include()Une version améliorée de la boucle double for. Utilisez l'instruction for...of pour remplacer la boucle for dans la couche externe et changez la boucle interne en include()
Créez d'abord un tableau vide lorsque include() renvoie false. , ajoutez l'élément push au tableau vide
De même, vous pouvez également utiliser indexOf() pour remplacer include()
function distinct(a, b) { let arr = a.concat(b) let result = [] for (let i of arr) { !result.includes(i) && result.push(i) } return result }
【Apprentissage recommandé :
Tutoriel avancé javascriptCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!