Wie ImmutableJS verwenden, muss ich eine neue Karte durch Zuordnung über den Schlüssel/Wert-Paare einer Eingangskarte erzeugen?Wie man Schlüsselwerte in einer Karte abbildet, um eine andere Karte mit ImmutableJS zu erzeugen?
In Scala, würde ich so etwas tun:
scala> Map(1->2, 3->4).toSeq.map{case (k, v) => (k*k) -> (v*v*v)}.toMap
res1: scala.collection.immutable.Map[Int,Int] = Map(1 -> 8, 9 -> 64)
(Dieser Fall trivialer Quadrate der Schlüssel und Würfel den Wert.)
In JavaScript, ich bin der Hoffnung, für so etwas wie:
Immutable.fromJS({1: 2, 3: 4}).map((v, k) => [k*k, v*v*v]).toJS()
// { 1: 8, 9: 64 }
(ich verwende ES6 via Babel.)
ich weiß, dass diese isn Aufgrund der möglichen Schlüsselkollision wird garantiert kein definiertes Ergebnis erzielt. In meiner Bewerbung verhindere ich dies anderswo.
Ich benutze eigentlich eine OrderedMap
, wenn das einen Unterschied macht.
Es gibt eine 'map()' Funktion verfügbar https://facebook.github.io/immutable-js/docs/#/Map/map – Ben
Hallo Ben, die Funktion an Karte übergeben wird erwartet, dass ein neuer Wert zurückgegeben wird . Ich suche nach etwas, von dem erwartet wird, dass es ein neues Schlüssel/Wert-Paar erzeugt, weil ich beide ändern muss. –
Guter Punkt, ich habe die Frage eindeutig nicht richtig gestellt – Ben