gpt4 book ai didi

javascript - 使用 ramda.js 将对象数组转换为一个对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:30 25 4
gpt4 key购买 nike

我有一个数组:

var a = [
{id: 1, val: 'a'},
{id: 2, val: 'b'},
{id: 3, val: 'c'},
{id: 4, val: 'd'},
]

我想将其转换为:

var b = {
1: 'a',
2: 'b',
3: 'c',
4: 'd',
}

其实我用的是纯js:

var b = a.reduce(
(ac, pr) => ({
...ac,
[pr.id]: pr.val,
}),
{}
);

但也许 Ramda.js 有一些特殊的用途?

最佳答案

您正在寻找 Ramda 的 .mergeAll() method :

var b = R.mergeAll(a.map(function(o) {
return {
[o.id]: o.val
}
}));

.map() 调用将从每个项目返回自定义对象,只取值,然后 .mergeAll() 将合并 array 变成一个对象

mergeAll 文档:

Merges a list of objects together into one object.

演示:

var a = [{
id: 1,
val: 'a'
},
{
id: 2,
val: 'b'
},
{
id: 3,
val: 'c'
},
{
id: 4,
val: 'd'
},
];


var b = R.mergeAll(a.map(function(o) {
return {
[o.id]: o.val
}
}));
console.log(b);
<script src="https://cdn.jsdelivr.net/ramda/0.18.0/ramda.min.js"></script>

关于javascript - 使用 ramda.js 将对象数组转换为一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506595/

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