2017-11-06 2 views
0

Ich bin mir nicht sicher, ob es bereits eine Funktion dafür gibt, was ich brauche, ist folgende ein JSON in reactjs, und ich brauche dies zu suchen, wenn die Städte wiederholt werden und das Rück nur ein Ergebnis, Beispiel, wenn ich 5 berlin, nur die ersten berlin kehrt wenn ich 5 Kalifornien haben die erste california gibtWenn der JSON dupliziert ist, gebe das erste Element zurück

[ 
    {id:1, city: "berlin"}, 
    {id:2, city: "berlin"}, 
    {id:3, city: "berlin"}, 
    {id:5, city: "california"}, 
    {id:6, city: "california"}, 
    {id:7, city: "california"} 
] 

dank für Ihre Hilfe

Antwort

1

Filter die Ergebnisse einer mit Set auf Duplikate prüfen:

const arr = [{"id":1,"city":"berlin"},{"id":2,"city":"berlin"},{"id":3,"city":"berlin"},{"id":5,"city":"california"},{"id":6,"city":"california"},{"id":7,"city":"california"}]; 
 

 
const result = arr.filter(function({ city }) { 
 
    return this.has(city) ? false : this.add(city); 
 
}, new Set); 
 

 
console.log(result);

Oder reduce das Array zu einem Map nach Land und spread zurück zur Array:

const arr = [{"id":1,"city":"berlin"},{"id":2,"city":"berlin"},{"id":3,"city":"berlin"},{"id":5,"city":"california"},{"id":6,"city":"california"},{"id":7,"city":"california"}]; 
 

 
const result = [...arr.reduce((m, o) => m.has(o.city) ? m : m.set(o.city, o), new Map).values()]; 
 

 
console.log(result);

+0

hallo, vielen Dank für Ihre Hilfe, groß, mit dem ersten Beispiel konnte ich auflösen, danke – Markapp

+0

@Markapp - viel Spaß :) –

Verwandte Themen