javascript - 迭代不可变的 JS 映射

标签 javascript immutable.js

考虑这段代码:

const map1 = Immutable.Map({a:1, b:2, c:3});

const myMap = map1.map((elem, index) => {
    return "Hello " + elem;
})

console.log(myMap.toJS());
// prnts {a: "Hello 1", b: "Hello 2", c: "Hello 3"}

我希望输出为 ['Hello1', 'Hello2, 'Hello3'],但是 map 也给了我一个带有键的对象。为什么我没有像普通 JavaScript map 那样得到一个数组作为输出?达到预期结果的最佳方法是什么? (我可以使用 forEach 而不是 map,并将每次迭代的结果推送到一个数组中,但我正在寻找更好的方法)。

最佳答案

使用 toArray() 而不是 toJS():

const map1 = Immutable.Map({a:1, b:2, c:3});

const myMap = map1.map((elem, index) => {
    return "Hello " + elem;
})

console.log(myMap.toArray());
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.2/immutable.js"></script>

关于javascript - 迭代不可变的 JS 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53409871/

相关文章:

javascript通过按钮切换div样式显示

java - Android java runnable runTimeException

javascript - ImmutableJS - 更新列表中的值

javascript - 异步ajax请求锁定浏览器

javascript - 正则表达式:如何获取 HTML 字符串中的最后一个单词而忽略 HTML 标签?

javascript - immutable.js 过滤和变异(删除)找到的条目

javascript:使用 EcmaScript 6/immutable js 左合并两个对象

javascript - React Immutable JS 如何订购 map

javascript - 为什么 JS 框架使用内联样式而不是 CSS 进行布局

javascript - Immutable.js 具有(默认)唯一 ID 的记录