Maison > interface Web > js tutoriel > Comment supprimer les doublons d'un tableau javascript

Comment supprimer les doublons d'un tableau javascript

青灯夜游
Libérer: 2023-01-07 11:47:32
original
2295 Les gens l'ont consulté

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.

Comment supprimer les doublons d'un tableau javascript

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]
Copier après la connexion

Méthode 2 : Array.from(new Set(arr))

const arr = [1, 2, 3, 2, 3];
Array.from(new Set(arr)); // [1, 2, 3]
Copier après la connexion

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+ indexOf

function 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", {…}, {…}]
Copier après la connexion

Méthode 4 : Double boucle for

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
}
Copier après la connexion

Mais cette méthode prend beaucoup de mémoire et est la moins efficace

Comment supprimer les doublons dun tableau javascript

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
}
Copier après la connexion

Comment supprimer les doublons dun tableau javascript【Apprentissage recommandé :

Tutoriel avancé javascript

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal