Javascript 在不可变JS映射上迭代

Javascript 在不可变JS映射上迭代,javascript,immutable.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'],但是ma

考虑以下代码:

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
works那样获得数组作为输出?达到预期效果的最佳方式是什么?(我可以使用
forEach
而不是
map
,并将每次迭代的结果推送到一个数组中,但我正在寻找更好的方法)。

只需使用

可运行的代码段如下所示:

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

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

console.log(Array.from(myMap.keys()));
使用toArray()代替toJS():

constmap1=Immutable.Map({a:1,b:2,c:3});
常量myMap=map1.map((元素,索引)=>{
返回“Hello”+elem;
})
log(myMap.toArray())

仅使用reduce提供不同的味道

constmap1=Immutable.Map({a:1,b:2,c:3});
const myMap=map1.reduce((累加器,值)=>{
累加器。按下(“Hello”+值);
回流蓄能器;
}, [])
console.log(myMap)
const map1 = Immutable.Map({a:1, b:2, c:3});

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

console.log(Array.from(myMap.keys()));