如何遍历不可变地图的不可变地图?

时间:2016-11-07 22:07:28

标签: javascript loops immutable.js

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

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

我怎么能

  1. 循环遍历mapOfMaps并获取所有键以将其打印出来?
  2. 循环遍历mapOfMaps的键以获取密钥的所有内容?
  3. 我现在无法选择切换到List。

    我不知道如何循环键。

2 个答案:

答案 0 :(得分:33)

使用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));

此外,您可以使用entrySeq()

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

答案 1 :(得分:0)

如果我们同时需要key:value,我们也可以使用for循环。 for循环可让您灵活地为所需的条件匹配进行休息。

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

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

}