我需要将数组(纯JS)的内容插入到给定索引的不可变List中。
我有一个像[a,b,c,d,e]
这样的列表,它代表服务器上索引0 - 4
的ID。然后我获取一个数组[j,k,l,m,n]
(代表索引9 - 14
的id')。我想合并两个列表,以便我有:
[a,b,c,d,e,undefined,undefined,undefined,undefined,undefined,j,k,l,m,n]
可以执行oldList.insert(9, nextList)
,但这会将整个nextList
数组嵌入到索引9
中而不是它在索引9 - 14
处的内容< / p>
我需要类似ES6 / Next传播操作符的东西..
const ids = oldList.insert(10, ...next_ids)
但这是不可能的。
有什么想法吗?
答案 0 :(得分:0)
这是我目前的解决方案,但有兴趣知道是否有更简洁的方式..
const list = List( ['a', 'b', 'c', 'd', 'e'] ) // Indices 0 - 5
const fetchResponse = ['j', 'k', 'l', 'm', 'n'] // Indices 9 - 14
const nextList = List()
.setSize(9) // The start index of fetched results
.concat(List(fetchResponse))
.mergeWith((next, last) => next || last, list) // Take new value at index if defined, otherwise old
console.log(nextList.toJS())
-> ['a', 'b', 'c', 'd', 'e', null, null, null, null, null, 'j', 'k', 'l', 'm', 'n']