Вы можете сделать toList()
, чтобы получить все values
(т.е. не keys
) карты в List
неизменяемой структуре, которой вы можете в дальнейшем манипулировать позже, или выполните List(yourMap)
, если хотите key
и value
в виде массива кортежей.Согласно документам :
Это аналогично списку (коллекции), но предоставляется для учета связанных выражений.Однако при вызове на Map или других коллекциях с ключами collection.toList () отбрасывает ключи и создает список только значений, тогда как List (collection) создает список кортежей записей.
const { Map, List } = require('immutable')
var myMap = Map({ a: 'Apple', b: 'Banana' })
List(myMap) // List [ [ "a", "Apple" ], [ "b", "Banana" ] ]
myMap.toList() // List [ "Apple", "Banana" ]
Aclaration:
Javascript будет сортировать ваши исходные object
ключи, если они числовые или могут быть проанализированы как числовые, поэтому вы можете сделать следующий обходной путь:
const PeopleMap = new OrderedMap([
["200", { id: 200, name: "John" }],
["120", { id: 120, name: "Mike" }],
["350", { id: 350, name: "James" }]
]);
Вот рабочий пример: https://jsfiddle.net/8kbcyfsn/
Объявляя его как массив пар ключ-значение, упорядоченная карта регистрирует правильный порядок.
Принимая во внимание, что если вы объявите его как объект,
const PeopleMap = new OrderedMap({
"200": { id: 200, name: "John" },
"120": { id: 120, name: "Mike" },
"350", { id: 350, name: "James"}
});
Он попытается упорядочить его по значению Number(key)
.