Я использую Ramda
для сортировки нормализованного объекта модели по ключу. Сначала я преобразовываю в пары ключ | значение (эквивалент Object.entries
) и сортирую по первому значению, используя R.head
(значение key
в парах)
Я хочу преобразовать результирующий отсортированный массив пар в массив объектов - в примере кода я использую ES6 + map
и array destructuring
const data = {
2: {name: 'two'},
1: {name: 'one'}
}
const sortByKey = R.compose(R.sortBy(R.head), R.toPairs);
const sortedPairs = sortByKey(data)
console.log(sortedPairs)
// [["1",{"name":"one"}],["2",{"name":"two"}]]
const objs = sortedPairs.map(([key, value]) => {
return {[key]: value}
})
console.log(objs)
// [{"1":{"name":"one"}},{"2":{"name":"two"}}]
Часть, для которой не может быть найдена функция Ramda
, равна
const objs = sortedPairs.map(([key, value]) => {
return {[key]: value}
})