在ImmutableJS中压缩多个列表的最佳方法是什么?

时间:2017-12-21 15:05:04

标签: immutable.js

假设我有一份清单。 e.g:

var token = Accounts._getLoginToken(this.connection.id);

最好的方法是什么(不使用toJS())来压缩“l”所以我会得到:

const l : List<List<number>> = fromJS([[0,1,2,3],[4,5,6,7],[8,9,10,11]])

1 个答案:

答案 0 :(得分:1)

我相信你想使用List#zip

&#13;
&#13;
const l = Immutable.fromJS([
  [0, 1, 2, 3],
  [4, 5, 6, 7],
  [8, 9, 10, 11]
]);
const zipped = l.get(0).zip(...l.rest());
console.log(zipped);
// [ [0,4,8], [1,5,9], [2,6,10], [3,7,11] ];
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.0.0-rc.9/immutable.js"></script>
&#13;
&#13;
&#13;

请注意,这会返回一个数组列表。尽管如此,将它们变成列表很容易:

const zippedLists = zipped.map(List);

如果您要压缩不同大小的列表,您可能也会对List#zipAll感兴趣。