Immutable.js - 是否可以在任意位置将元素插入列表?

时间:2015-01-27 04:50:58

标签: immutable.js

也许这是一个愚蠢的问题,但无论如何。如何在Immutable.js List的任意位置插入元素?

2 个答案:

答案 0 :(得分:31)

您正在寻找splicemethod

  

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"]