如何循环不可变映射的不可变映射?

use*_*710 14 javascript loops immutable.js

我有一张不可变的地图地图.

let mapOfMaps = Immutable.fromJS({
    'abc': {
         id: 1
         type: 'request'
    },
    'def': {
        id: 2
        type: 'response'
    },
    'ghi': {
        type: cancel'
    },
    'jkl': {
        type: 'edit'
    }
});
Run Code Online (Sandbox Code Playgroud)

我怎么能够

  1. 循环通过mapOfMaps并获取所有键打印出来?
  2. 循环遍历mapOfMaps的键以获取密钥的所有内容?

我没有在这个阶段切换到List的选项.

我不知道如何循环键.

mad*_*ox2 35

使用keySeq()/ valueSeq()方法,您可以获得键/值序列.然后你可以迭代它,例如forEach():

let mapOfMaps = Immutable.fromJS({
    abc: {
         id: 1,
         type: 'request'
    },
    def: {
        id: 2,
        type: 'response'
    },
    ghi: {
        type: 'cancel'
    },
    jkl: {
        type: 'edit'
    }
});

// iterate keys
mapOfMaps.keySeq().forEach(k => console.log(k));

// iterate values
mapOfMaps.valueSeq().forEach(v => console.log(v));
Run Code Online (Sandbox Code Playgroud)

此外,您可以在一个循环中迭代entrySeq():

mapOfMaps.entrySeq().forEach(e => console.log(`key: ${e[0]}, value: ${e[1]}`));
Run Code Online (Sandbox Code Playgroud)