我想用 JavaScript 将对象数组转换为对象 [重复]
Posted
技术标签:
【中文标题】我想用 JavaScript 将对象数组转换为对象 [重复]【英文标题】:I want to convert Object Array to Object with JavaScript [duplicate] 【发布时间】:2021-01-04 06:41:05 【问题描述】:对不起...我在示例上犯了一个错误...
我想将对象数组转换为单个对象。
之前
[
key: "A", value: "a",
key: "B", value: "b",
key: "C", value: "c",
.
.
.
]
之后
A: "a",
B: "b",
C: "c"
.
.
.
我尝试使用 Object.assign(),但效果不佳。
你知道有什么好的方法吗?
【问题讨论】:
@NickParsons:奇怪的是,这个骗子并没有被另一个金徽章所有者关闭,他是该线程中接受答案的作者(完全相同) @YevgenGorbunkov 哦,哈哈,甚至没有意识到。我猜这个问题/答案是 3 岁,所以他们可能已经忘记了他们的旧答案...... @Jamm :不过,您似乎切换方向太快了,我的答案的最新编辑返回了您的预期输出。 【参考方案1】:您可以使用Array.prototype.reduce()
:
const src = [key:"A",value:"a",key:"B",value:"b",key:"C",value:"c"],
result = src.reduce((acc, key,value) =>
(acc[key] = value, acc), )
console.log(result)
【讨论】:
【参考方案2】:你可以spread ...
Object.assign
的对象。
const
data = [ name: 'A' , firstname: 'Jamm' , age: "23" ],
object = Object.assign(, ...data);
console.log(object);
【讨论】:
【参考方案3】:您可以使用reduce
并在回调内部迭代对象以将键和值添加到累加器对象
let data = [
name: 'A'
,
firstname: 'Jamm'
,
age: "23"
,
]
const newData = data.reduce((acc, curr) =>
for (let keys in curr)
acc[keys] = curr[keys]
return acc;
, );
console.log(newData)
【讨论】:
【参考方案4】:您可以使用Array.prototype.reduce
将单个对象组合成一个对象:
const data = [ name: 'A' , firstname: 'Jamm' , age: '23'];
function combineObjects(arr)
return arr.reduce((acc, o) =>
return ...o, ...acc ;
, );
console.log(combineObjects(data));
【讨论】:
以上是关于我想用 JavaScript 将对象数组转换为对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用map方法将javascript对象数组转换为其他对象数组[重复]