2016-04-09 16 views
2

Ich brauche eine Funktion Javascript. Ich habe eine Liste mit FormatEntfernen Sie doppelte Zeilen mit Position Delimiter

abc|a|1 
abc|a|2 
abcd|a|1 
abc|b|1 

und ich möchte durch erste und zweite Postion duplizieren (split "|") Neue Liste ist:

abc|a|1 
abcd|a|1 
abc|b|1 

Danke soviel

+1

Sorry, Ihre "i durch duplizieren wollen", ist unklar. Wollen Sie damit sagen, dass Sie die zweite Liste erstellen wollen, indem Sie "abc | a | 2" aus der ersten Liste auslassen? Und welche * exakte * Regel willst du verwenden, um den Wunsch zu identifizieren, sollte weggelassen werden? – MartynA

+0

Ja, Entschuldigung für mein Englisch. Ich möchte nach Position 1 und 2 duplizieren – denmodo

+0

1 | 2 | 3 ist das Format – denmodo

Antwort

1

Sie können die Daten mit Array#filter() filtern und ein temporäres Objekt für die Suche verwenden, wenn bereits ein Element mit denselben zwei Teilen im Ergebnis vorhanden ist.

var list = ['abc|a|1', 'abc|a|2', 'abcd|a|1', 'abc|b|1'], 
 
    result = list.filter(function (a) { 
 
     var b = a.split('|'), 
 
      k = b[0] + '|' + b[1]; 
 
     if (!this[k]) { 
 
      this[k] = true; 
 
      return true; 
 
     } 
 
    }, {}); 
 

 
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');

+1

Vielen Dank :) – denmodo

Verwandte Themen