Возможно, это глупый вопрос, но в любом случае. Как вставить элемент в произвольное положение списка Immutable.js?
Immutable.js - можно ли вставить элемент в список в произвольном положении?
Ответ 1
Вы ищете метод splice
:
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.
Ответ 2
Стоит отметить, что вы также можете использовать метод 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"]