Immutable.jsレコードのマッピング

Sep 17 2020

レコードがある場合、マップなどの機能をどのように適用するのが最適ですか?

これは私がこれまでに得た最高のものです:

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)

回答

dube Sep 24 2020 at 15:08

レコードにはwithMutations、のようなコレクションAPI関数の一部が欠けているので、あなたのアプローチは完全に問題ないと思います。私はあなたがそれが奇妙に見えるのであなたが尋ねたと思うので、多分あなたはこれを好むでしょう:

を使用してmergeWith、マージ関数を定義できます。これは、2番目のコレクションと同じレコードを渡すだけです。

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