Mappatura su record Immutable.js

Sep 17 2020

Come si applicano al meglio funzioni come la mappa quando si dispone di un record?

Questo è il meglio che ho ottenuto finora:

const FooRecord = Record({a: 0, b: 0})
const someRecord = FooRecord({a: 1, b: 2})
const someSeq = someRecord.toSeq().map(x => x + 1)
const someRecordUpdated = FooRecord(someSeq)

Risposte

dube Sep 24 2020 at 15:08

Ai record mancano alcune delle funzioni API della raccolta withMutations, quindi immagino che il tuo approccio sia perfettamente a posto. Immagino che tu l'abbia chiesto perché sembra strano, quindi forse preferisci questo:

Potresti usare mergeWith, che ti consente di definire una funzione di fusione, un solo passaggio nello stesso record della seconda raccolta:

const someRecordUpdated = someRecord.mergeWith(
    (originalVal, passedInVal) => originalVal + 1, someRecord);