Maison > Article > interface Web > Quelles sont les trois méthodes pour supprimer les doublons des tableaux de nœuds ?
Méthode : 1. Utilisez la structure de données de la carte pour réaliser la déduplication et stockez chaque élément du tableau comme clé dans la carte ; 2. Utilisez la méthode set dans es6 pour réaliser la déduplication, la syntaxe est "Set(array)" ; 3. Utilisez l'instruction forEach avec indexOf pour supprimer les duplications.
L'environnement d'exploitation de cet article : système Windows 10, nodejs version 12.19.0, ordinateur Dell G3.
La première méthode consiste à utiliser la structure de données Map pour dédupliquer
Créer une structure de données Map vide, parcourir le tableau qui doit être dédupliqué et enregistrer chaque élément du tableau comme clé du milieu de la carte. Puisque la même valeur clé n'apparaîtra pas dans la carte, le résultat final est le résultat de la déduplication
function a(arr) { let map = new Map(); let array = new Array(); // 数组用于返回结果 for (let i = 0; i < arr.length; i++) { if (map.has(arr[i])) { // 如果有该key值 map.set(arr[i], true); } else { map.set(arr[i], false); // 如果没有该key值 array.push(arr[i]); } } return array; } var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]; console.log(a(arr)) //[1,2,3,4,5]
La deuxième consiste à utiliser set dans ES6 est la méthode de déduplication la plus simple
let arr2 = [1, 2, 3, 4, 5, 5, 4, 3]; let res = [...new Set(arr2)]; console.log(res);
La troisième est l'implémentation forEach+indexOf Apprentissage recommandé par
var arr3 = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]; var b = distinct(arr3); function distinct(arr) { result = [], len = arr3.length; //len=10; arr3.forEach(function (v, i, arr3) { var bool = arr3.indexOf(v, i + 1); //从传入参数的下一个索引值开始寻找是否存在重复 if (bool === -1) { result.push(v); } }) return result; }; console.log(b.toString()); //1,2,3,4,5
Ce 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!