首页 > 解决方案 > 在 TypeScript 中迭代 immutablejs 映射值

问题描述

我想用循环迭代 immutable.js Map 的值for,因为这是 TypeScript 中的首选方式,尤其是使用迭代器协议。我正在寻找类似的东西

const map = Map<string, number>();
for (const num of map.values()) {
    ...
}

但是,map.values()“不是数组,没有字符串,也没有 Symbol.iterator 方法”。

标签: typescriptimmutable.js

解决方案


使用valueSeq()方法而不是values()来迭代 Map。

您可以使用forEachfor如下

const map1 = Immutable.Map({
  abc: 9999,
  def: 1111,
  ghi: 4444,
  jkl: 23
});

map1.valueSeq().forEach(v => console.log(v));

for (const num of map1.valueSeq()) {
  console.log('num ', num)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.2/immutable.js"></script>


推荐阅读