Подтвердить что ты не робот

Immutable.js - можно ли вставить элемент в список в произвольном положении?

Возможно, это глупый вопрос, но в любом случае. Как вставить элемент в произвольное положение списка Immutable.js?

4b9b3361

Ответ 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"]