gpt4 book ai didi

javascript - 根据给定键将对象数组转换为对象

转载 作者:行者123 更新时间:2023-11-30 11:06:26 24 4
gpt4 key购买 nike

我是 Javascript 新手。

我需要编写一个函数来将对象数组转换为具有给定键的对象。

输入是这样的

convert([{id: 1, value: 'abc'}, {id: 2, value: 'xyz'}], 'id')

输出应该是这样的

{
'1': {id: 1, value: 'abc'},
'2': {id: 2, value: 'xyz'}
}

我试过下面的代码。

当我直接在控制台中尝试这个时,它似乎正在工作。

var arr = [{ id: 1, name: 'John', role: 'Developer'},
{ id: 2, name: 'Jane', role: 'Lead'},
{ id: 3, name: 'Robbie', role: 'QA'}];

let res = arr.reduce((prev, current) => {
prev[current.v] = current;
return prev;
}, {})

console.log(res)

但是,当我尝试从函数中执行此操作时,它不起作用。

function f(k, v) {
//console.log(k);
k.reduce((prev, current) => {
prev[current.v] = current;
return prev;
console.log(prev)
}, {})
}

f(arr, 'role');

我们将不胜感激任何帮助。

最佳答案

您可以通过映射分配的新对象来采用函数式方法。

function convert(array, key) {
return Object.assign(...array.map(o => ({ [o[key]]: o })));
}


console.log(convert([{ id: 1, value: 'abc' }, { id: 2, value: 'xyz' }], 'id'))

关于javascript - 根据给定键将对象数组转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55429689/

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