如何将ImmutableJS列表分成多个列表

Ger*_*los 9 list immutable.js

有没有办法将ImmutableJS列表分成多个列表的列表?我基本上都在寻找类似lodash的块,但是对于ImmutableJS列表.

我可以改变我的名单为Array它传递给前和转换回ImmutableJS列表中的反应,但有人告诉我浅薄的转换效率不高,我的名单是相当大的.

谢谢你,G.

jok*_*kka 11

Immutable.js不提供开箱即用的功能.

这是将列表拆分为相同大小的块的功能.如果列表无法均匀分割,则最后一个块可能更小.

function splitIntoChunks(list, chunkSize = 1) {
  return Immutable.Range(0, list.count(), chunkSize)
    .map(chunkStart => list.slice(chunkStart, chunkStart + chunkSize));
}
Run Code Online (Sandbox Code Playgroud)

它首先枚举每个块应该开始的索引,然后将索引列表转换为从每个索引到索引加上块大小的切片列表.

看起来简单而有效.