immutableなjs

目的

データ構造に対する変更操作は全て「新しい状態を返す関数」の形で提供されています。

import { List } from "immutable";

const userIds = List([1, 3, 5]);
console.log(userIds.push(10).toJS()); // => [1, 3, 5, 10]

// 更新前の状態が残されている
console.log(userIds.toJS()); // => [1, 3, 5]

ref: https://www.wantedly.com/companies/wantedly/post_articles/306005

配列なんかを非破壊的に操作するために、オブジェクトを複製して操作したものを返却する。
元のオブジェクトの構造はそのままに。
っていうことみたいだね。