it-swarm.com.de

Wie kann man eine unveränderliche Karte mit unveränderlichen Karten durchlaufen?

Ich habe eine unveränderliche Karte von Karten.

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

Wie kann ich

  1. mapOfMaps durchlaufen und alle Schlüssel erhalten, um sie auszudrucken? 
  2. die Schlüssel von mapOfMaps durchlaufen, um den gesamten Inhalt des Schlüssels abzurufen?

Ich habe zu diesem Zeitpunkt keine Möglichkeit, zu einer Liste zu wechseln.

Ich weiß nicht, wie man die Tasten durchläuft.

11
user1261710

Mit der keySeq()/valueSeq()-Methode erhalten Sie die Reihenfolge der Schlüssel/Werte. Dann können Sie es zum Beispiel mit forEach() iterieren:

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

Außerdem können Sie beide in einer Schleife mit entrySeq() durchlaufen:

mapOfMaps.entrySeq().forEach(e => console.log(`key: ${e[0]}, value: ${e[1]}`));
32
madox2

Wenn wir Schlüssel und Wert zusammen benötigen, können wir auch forloop verwenden. forloop bietet die Flexibilität, eine Unterbrechung für eine gewünschte Übereinstimmungsbedingung festzulegen.

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

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