Как пройти через неизменяемую карту неизменяемых карт?
У меня есть неизменяемая карта карт.
let mapOfMaps = Immutable.fromJS({
'abc': {
id: 1
type: 'request'
},
'def': {
id: 2
type: 'response'
},
'ghi': {
type: cancel'
},
'jkl': {
type: 'edit'
}
});
Как я могу
- пройдите через mapOfMaps и получите все ключи, чтобы распечатать их?
- прокручивать ключи mapOfMaps, чтобы получить все содержимое ключа?
У меня нет возможности переключиться на Список на этом этапе.
Я не знаю, как прокручивать ключи.
Ответы
Ответ 1
С помощью метода 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]}`));
Ответ 2
Если нам нужен ключ: значение вместе, мы также можем использовать цикл for
. Цикл for
обеспечивает гибкость для установки break;
для желаемого соответствия условий.
//Iterating over key:value pair in Immutable JS map object.
for(let [key, value] of mapOfMaps) {
console.log(key, value)
}