Maison > interface Web > js tutoriel > Quelles sont les méthodes pour supprimer les doublons des tableaux js ? Résumé des méthodes de déduplication de tableau js (exemple)

Quelles sont les méthodes pour supprimer les doublons des tableaux js ? Résumé des méthodes de déduplication de tableau js (exemple)

不言
Libérer: 2018-08-17 17:04:11
original
2323 Les gens l'ont consulté

Ce que cet article vous apporte, c'est quelles sont les méthodes pour supprimer les doublons des tableaux js ? Un résumé des méthodes de déduplication de tableaux js (exemples) a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer, j'espère qu'il vous sera utile.

La méthode d'écriture la plus basique consiste à utiliser indexOf()

var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
//比较常规的语法使用indexOf来判断是否已经存在
getFileArray(arr)
function getFileArray(arr){
  var array = [];
  arr.forEach(e => {
    if(array.indexOf(e) !== -1){
      return;
    }else {
      array.push(e)
    }
  });
  return array;
}
Copier après la connexion

La méthode de suppression qui semble avoir de bonnes performances

// 通过遍历每次被值给到数组角标 适用于数组里面数量不太的数组
var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
getFilterArray(arr)
function getFilterArray (array) {
    const res = [];
    const json = {};
    for (let i = 0; i < array.length; i++){
        const _self = array[i];    //获取迭代的数值
        if(!json[_self]){          //假如json在_self这个下标没有数值,就说明这个数据没有
            res.push(_self);       //没有的话就push
            json[_self] = 1;       //同时给这和匹配不到的下标一个值,保证下次进不来
        }                          // 这样写的话 不需要循环遍历 对性能要求更小
    }
    return res;
}
Copier après la connexion

Méthode d'écriture alternative

var array = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
arrtoObject(arr)
function arrtoObject(arrs) {
  //var obj={};
  var obj = new Object();
  for (var i = 0; i < arrs.length; i++) {
    obj[arrs[i]] = true;
  }
  objectToarr(obj)
}

function objectToarr(obj){
  console.log(obj);
  var arr = [];
  for (const i in obj) {
    arr.push(i)
  }
  console.log(arr);
  return arr
}
Copier après la connexion

Fonction de filtre de filtre ES5

var array = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
function unique(array) {
  var res = array.filter(function (item, index, array) {
    return array.indexOf(item) === index;   //因为array.indexOf返回数组的下标 如果这里的下标和index不一样说明已经存在了,就直接退出了
  })
  return res;
}

console.log(unique(array));
Copier après la connexion

Ensemble ES6 Il s'agit simplement d'un tri de filtre pour filtrer

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]

function FilterArray(arr) {
  set = new Set(arr)
  let arrays = Array.from(set)
  arrays.sort((a, b) => {
    return a - b
  })
  return arrays
}
FilterArray(arr)
Copier après la connexion

Si nous avons seulement besoin de trier

nous pouvons utiliser une implémentation de code sur une ligne

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
var FilterArray = (arr) => [...new Set(arr)]   //
FilterArray(arr)
Copier après la connexion

Recommandations associées :

Suppression du tableau JS des données en double

JS utilise la méthode indexOf( ) pour implémenter la déduplication de tableau

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