也许这是一个愚蠢的问题,但无论如何。如何在Immutable.js List的任意位置插入元素?
答案 0 :(得分:31)
您正在寻找splice
method:
Splice通过用新值替换此Iterable的区域来返回新的索引Iterable。
splice(index: number, removeNum: number, ...values: any[])
您可以在其中指定index
,如果您将0
写为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。
答案 1 :(得分:13)
值得指出的是,您也可以使用insert方法实际上与list.splice(index, 0, value)
同义,但感觉更直观,并且极大地提高了可读性。
const myImmutableList = Immutable.fromJS(['foo', 'baz'])
const newList = myImmutableList.insert(1, 'bar')
console.log(newList.toJS()) //["foo", "bar", "baz"]