Mit Ramda undFiltern (eindeutige) Anpassungswerte
const data = [{
"id": "a",
"name": "A"
}, {
"id": "b",
"name": "B"
}, {
"id": "c",
"name": "C"
}]
I
tun könnenconst findById = (id, data) => R.pipe(
R.find(R.propEq('id', id))
)(data)
const id = "a"
findById(id, data) // => { "id": "a", "name": "A" }
aber was ist eine Reihe von ID-Werte nehmen eine Liste nur mit den passenden Objekte zurück? I.e.
So etwas wie zupfen, wählen usw., aber für Werte statt Schlüssel, wo jeder Wert als einzigartig angenommen werden kann.
(Bevorzugt knappe, vielleicht sogar punktfreie Varianten).
Der nächste, den ich bisher bekommen habe, ist der Austausch der? für beide
R.filter(x => R.contains(x.id, ids))
oder
R.takeWhile(x => R.contains(x.id, ids))
wodurch man sowohl eine das Objekt.
Danke! Ich bin ziemlich neu in Ramda und das oben genannte ist hauptsächlich wie ich es benutze, so dass alle Einblicke rund um das auch sehr willkommen wären.
UPDATE
Dies ist eine nicht-Frage. Es funktioniert tatsächlich in der REPL, aber nicht für Tests in meinem lokalen Umfeld (Atom + Wallaby + AVA). Nicht sicher, warum, aber ich werde updaten, wenn ich es herausfinde. Siehe verifizierte Antwort für Variationen mit einem statischen und einem dynamischen Schlüssel. Wäre immer noch Spaß, von anderen Ansätzen zu hören.
UPDATE 2
Stellt sich heraus, es nur ein Tippfehler war. Vielleicht sollte ich es überdenken, komplexe Hashes für Test-IDs zu verwenden. : D
ich total über terse zustimmen, wenn es auf Kosten der Klarheit zu viel kommt. Sollte das klar gemacht haben! :) Danke für die Antwort. Wies mich darauf hin, dass es tatsächlich in der REPL funktioniert (Link oben hinzugefügt). Funktioniert nicht lokal (testet mit Atom + Wallaby + AVA) aus irgendeinem Grund. Ich werde aktualisieren, wenn ich es herausfinden. – jiku
Werden ES6 Pfeilfunktionen in Ihrer Umgebung unterstützt? – naomik
Yeah ES6 ist in Ordnung. Es stellte sich heraus, dass es nur ein Tippfehler war. Vielleicht sollte ich es überdenken, komplexe Hashes für Test-IDs zu verwenden.: D – jiku