如何遍历不可变映射的不可变映射?

How to loop through an Immutable Map of Immutable Maps?

我有一个不可变的地图地图。

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

我怎么能

  1. 遍历 mapOfMaps 并获取所有键以打印出来?
  2. 遍历 mapOfMaps 的键以获取键的所有内容?

现阶段我没有切换到列表的选项。

我不知道如何循环键。

使用 keySeq()/valueSeq() 方法,您可以获得 keys/values 的序列。然后你可以用 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));

此外,您可以使用 entrySeq():

在一个循环中迭代两者
mapOfMaps.entrySeq().forEach(e => console.log(`key: ${e[0]}, value: ${e[1]}`));

如果我们需要一起使用key:value,我们也可以使用for循环。 forloop 提供了灵活性,可以为所需的条件匹配放置 break;

//Iterating over key:value pair in Immutable JS map object.

for(let [key, value] of mapOfMaps) {
       console.log(key, value)

}