web-dev-qa-db-ja.com

Immutable.js-リストの任意の位置に要素を挿入することは可能ですか?

多分これは愚かな質問ですが、とにかく。 Immutable.jsリストの任意の位置に要素を挿入するにはどうすればよいですか?

20
AndreyM

splicemethod を探しています:

Spliceは、このIterableの領域を新しい値で置き換えることにより、新しいインデックス付きのIterableを返します。

splice(index: number, removeNum: number, ...values: any[])

indexを指定できる場所と、0 as removeNumとして、指定された位置に値を挿入します。

var list = Immutable.List([1,2,3,4]);
console.log(list.toJS()); //[1, 2, 3, 4]
var inserted = list.splice(2,0,100);
console.log(list.toJS()); //[1, 2, 3, 4]
console.log(inserted.toJS()); //[1, 2, 100, 3, 4] 

デモ JSFiddle

32
nemesv

実際にはlist.splice(index, 0, value)と同義である insert メソッドを使用することもできますが、より直感的になり、読みやすさが大幅に向上します。

const myImmutableList = Immutable.fromJS(['foo', 'baz'])
const newList = myImmutableList.insert(1, 'bar')

console.log(newList.toJS()) //["foo", "bar", "baz"]
14
Smilev