考虑这段代码:
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/