Memetakan Rekaman Immutable.js

Sep 17 2020

Bagaimana cara terbaik Anda menerapkan fungsi seperti peta jika Anda memiliki Record?

Ini yang terbaik yang saya miliki sejauh ini:

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)

Jawaban

dube Sep 24 2020 at 15:08

Rekaman kekurangan beberapa fungsi api koleksi seperti withMutations, jadi saya kira pendekatan Anda baik-baik saja. Saya kira Anda bertanya karena terlihat aneh, jadi mungkin Anda lebih suka yang ini:

Anda dapat menggunakan mergeWith, yang memungkinkan Anda menentukan fungsi penggabungan, hanya meneruskan dalam catatan yang sama sebagai koleksi kedua:

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