Ich habe Daten, die im folgenden Format als action.places
kommt.Legen Sie benutzerdefinierte immutablejs-Schlüssel fest, um Datenduplizierung zu verhindern?
Ich möchte dies nur mit neuen Daten kombinieren und eine neue Karte der aktualisierten Orte zurückgeben. Wenn ich ein Objekt von Orten bekomme und einer der Orte den gleichen Breitengrad wie ein vorheriger Ort hat, möchte ich diese Daten nicht anhängen.
{
places: [
{
place: {
lat: 123,
lon: 321,
}
},
{
place: {
lat: 432,
lon: 234,
}
},
]
}
Wie würde ich das mit einer Karte machen? Derzeit bin anhängen ich auf diese Weise aber alles doppelt vorhanden ist, kann ich nicht eine nicht unordentlich Lösung finden:
case RECEIVE_PLACES:
return state
.set('places', state.get('places').update(fromJS(action.places)))
Im Idealfall würde ich den Schlüssel gesetzt jedes OBJ [${lat},${lon}
] (nur auf einzigartige Weise ein zu identifizieren Platz), auf diese Weise würde ich nur über die Schlüssel iterieren müssen, um meine Plätze zu bekommen.
Basierend auf dieser Beschreibung denke ich, dass Sie eine "Set" anstelle einer "Liste" zum Speichern der "Orte" verwenden sollten. – Josep
Ich benutze eine 'Map'. @Josep - Ich habe die Frage aktualisiert. – eveo
Nein, du bist nicht. Auf der obersten Ebene sind Sie, aber "Orte" ist eine Liste, weil "fromJS" standardmäßig ein Array in eine Liste konvertiert. – Josep