Javascript 如何在唯一数组中转换对象数组?
这是我的初始数据:Javascript 如何在唯一数组中转换对象数组?,javascript,arrays,Javascript,Arrays,这是我的初始数据: const data = [ { "user":{ "amount":"1", "date":"2020-07-31T18:34:48.635Z", "shiftSelected":"10:00" } }, { "user
const data = [
{
"user":{
"amount":"1",
"date":"2020-07-31T18:34:48.635Z",
"shiftSelected":"10:00"
}
},
{
"user":{
"name":"Name",
"surname":"aaa",
"obs":"eee"
}
}
]
我正在尝试将对象数组转换为唯一数组。这是我的输出:
const newData = {
amount: "1",
date: "2020-07-31T18:34:48.635Z",
shiftSelected: "10:00",
name: "Name",
surname:"aaa",
obs:"eee"
}
我可以通过map调用来迭代数组:let b=data.map(item=>item.user)
,但是我需要编写更多的代码来加入。我知道用一种独特的逻辑是可以做到的。我尝试过,但没有成功。您可以使用来合并对象的属性。请注意,使用此方法,以后的属性将覆盖以前的属性
const数据=[
{
“用户”:{
“金额”:“1”,
“日期”:“2020-07-31T18:34:48.635Z”,
“已选择班次”:“10:00”
}
},
{
“用户”:{
“名称”:“名称”,
“姓氏”:“aaa”,
“obs”:“eee”
}
}
];
const result=data.reduce((acc,{user})=>Object.assign(acc,user),{});
控制台日志(结果)代码>
const数据=[
{
“用户”:{
“金额”:“1”,
“日期”:“2020-07-31T18:34:48.635Z”,
“已选择班次”:“10:00”
}
},
{
“用户”:{
“名称”:“名称”,
“姓氏”:“aaa”,
“obs”:“eee”
}
}
]
设b=数据。减少((acc,rec)=>{
常量{user}=rec
返回{…acc,…user}
}, {} )
console.log(b)
在映射数据后使用此选项这不是逻辑,而是。。。。。
非常感谢你@Zkk很乐意帮忙。
const x = data.map(obj => obj.user);
function flatObj(arr) {
const res = {};
arr.forEach(y => {
for(const key in y) {
res[key] = y[key];
}
})
return res;
}
const resault = flatObj(x);