Maison  >  Article  >  interface Web  >  Exemples de fonctions de déduplication d'ensemble, d'intersection, d'union et de différence implémentées dans JS

Exemples de fonctions de déduplication d'ensemble, d'intersection, d'union et de différence implémentées dans JS

亚连
亚连original
2018-05-30 15:55:101612parcourir

Cet article présente principalement les fonctions de déduplication d'ensemble, d'intersection, d'union et d'ensemble de différences implémentées par JS, et analyse les techniques d'implémentation associées telles que la déduplication d'ensemble, l'intersection, l'union, l'ensemble de différences et d'autres techniques d'implémentation associées basées sur des tableaux en javascript dans le sous forme d'exemples., Les amis dans le besoin peuvent se référer à

Cet article décrit les fonctions de déduplication, d'intersection, d'union et de différence implémentées par JS. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1.js implémente le fonctionnement défini des tableaux

Afin de faciliter les tests, nous utilisons nodejs. ici, le code est comme set_operation.js

function array_remove_repeat(a) { // 去重
  var r = [];
  for(var i = 0; i < a.length; i ++) {
    var flag = true;
    var temp = a[i];
    for(var j = 0; j < r.length; j ++) {
      if(temp === r[j]) {
        flag = false;
        break;
      }
    }
    if(flag) {
      r.push(temp);
    }
  }
  return r;
}
function array_intersection(a, b) { // 交集
  var result = [];
  for(var i = 0; i < b.length; i ++) {
    var temp = b[i];
    for(var j = 0; j < a.length; j ++) {
      if(temp === a[j]) {
        result.push(temp);
        break;
      }
    }
  }
  return array_remove_repeat(result);
}
function array_union(a, b) { // 并集
  return array_remove_repeat(a.concat(b));
}
function array_difference(a, b) { // 差集 a - b
  //clone = a
  var clone = a.slice(0);
  for(var i = 0; i < b.length; i ++) {
    var temp = b[i];
    for(var j = 0; j < clone.length; j ++) {
      if(temp === clone[j]) {
        //remove clone[j]
        clone.splice(j,1);
      }
    }
  }
  return array_remove_repeat(clone);
}
a = [1,2,3,4,5];
b = [3,4,5,6,7];
c = array_intersection(a, b);
d = array_union(a, b);
e = array_difference(a, b);
f = array_difference(b, a);
console.log("test array a:", a, " b:", b);
console.log("a & b :", c);
console.log("a + b :", d);
console.log("a - b:", e);
console.log("b - a:", f);

Test

Nous utilisons nodejs pour tester ici

Résultats des tests :

stephen@stephen:~/openstack/demo/nodejs$ node set_operation.js
test array a: [ 1, 2, 3, 4, 5 ]  b: [ 3, 4, 5, 6, 7 ]
a & b : [ 3, 4, 5 ]
a + b : [ 1, 2, 3, 4, 5, 6, 7 ]
a - b: [ 1, 2 ]
b - a: [ 6, 7 ]

Ce qui précède, c'est moi, je l'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde à l'avenir.

Articles connexes :

jquery implémente la fonction de barre de progression de chargement du téléchargement de fichier glisser

Analyse du prototype javascript et de la chaîne de prototypes

Tutoriel détaillé sur l'utilisation d'Angular CLI pour générer des projets Angular 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!

Déclaration:
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