Heim  >  Artikel  >  Web-Frontend  >  JS-Implementierung der Beispielfreigabe von Satzdeduplizierung, Schnittmenge, Vereinigung und Differenzfunktion

JS-Implementierung der Beispielfreigabe von Satzdeduplizierung, Schnittmenge, Vereinigung und Differenzfunktion

小云云
小云云Original
2018-03-14 09:06:211462Durchsuche

In diesem Artikel werden hauptsächlich die von JS implementierten Sammlungsdeduplizierungs-, Schnitt-, Vereinigungs- und Differenzfunktionen vorgestellt und verwandte Implementierungstechniken wie Array-basierte Deduplizierung, Schnittmenge, Vereinigung, Differenz und andere verwandte Implementierungstechniken von JavaScript basierend auf Arrays analysiert In Form von Beispielen können Freunde in Not darauf verweisen, ich hoffe, es kann allen helfen.

1. js implementiert die Set-Operation von Arrays

Um das Testen zu erleichtern, verwenden wir hier nodejs, der Code ist wie 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);

2. Test

Wir verwenden nodejs zum Testen

Testergebnisse:

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 ]

Verwandte Empfehlungen:

js Detaillierte Erläuterung der Array-Deduplizierung und -Sortierung

Detaillierte Erläuterung mehrerer Ideen für die Javascript-Array-Deduplizierung mit Beispielen

Analyse von JS einfache Implementierung der Array-Deduplizierung

Das obige ist der detaillierte Inhalt vonJS-Implementierung der Beispielfreigabe von Satzdeduplizierung, Schnittmenge, Vereinigung und Differenzfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn