gpt4 book ai didi

javascript - lambda : convert key value array to object

转载 作者:行者123 更新时间:2023-12-04 10:20:09 25 4
gpt4 key购买 nike

我正在使用 Ramda按键对规范化模型对象进行排序。首先,我转换为键|值对(相当于 Object.entries ),并使用 R.head 按第一个值排序(成对时的 key 值)

我想将结果排序的对数组转换为对象数组 - 在示例代码中,我使用的是 ES6+ maparray 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}
})

最佳答案

您可以将 R.map 与应用的 R.objOf 结合使用,将一对数组 ([key, value]) 转换为数组对象

const { compose, map, apply, objOf, sortBy, head, toPairs } = R

const sortByKey = compose(sortBy(head), toPairs)
const arrayFromPairs = map(apply(objOf))

const data = {
2: {name: 'two'},
1: {name: 'one'}
}

const result = arrayFromPairs(sortByKey(data))

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.27.0/ramda.js"></script>

关于javascript - lambda : convert key value array to object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60905274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com