使用键转换对象中对象的javascript数组

使用键转换对象中对象的javascript数组,javascript,arrays,object,Javascript,Arrays,Object,以下是我所拥有的: const datas = [ {id: '/chiens', content: ['waf1','waf2']}, {id: '/chats', content: ['miaou1','miaou2']}, {id: '/oiseaux', content: ['cui1','cui2']} ] 我想要的是: const datasFiltered = { chiens : ['waf1','waf2'], chats : ['miaou1','m

以下是我所拥有的:

const datas = [
  {id: '/chiens', content: ['waf1','waf2']},
  {id: '/chats', content: ['miaou1','miaou2']},
  {id: '/oiseaux', content: ['cui1','cui2']}
]
我想要的是:

const datasFiltered = {
   chiens : ['waf1','waf2'],
   chats : ['miaou1','miaou2'],
   oiseaux : ['cui1','cui2']
}
我怎么能做到?用
减少
可能吗


谢谢你的帮助

您可以使用功能
reduce
来创建所需的结果

const data=[{id:'/chiens',content:['waf1','waf2']},{id:'/chats',content:['miaou1','miaou2']},{id:'/oiseaux',content:['cui1','cui2']},
datasFiltered=datas.reduce((a,{id:[\,…]key],content})=>Object.assign(a,{[key.join(“”)]:content}),Object.create(null));
console.log(数据过滤)
.as控制台包装{最大高度:100%!重要;顶部:0;}
以下是示例代码

const数据=[
{id:“/chiens”,内容:[“waf1”,“waf2”]},
{id:“/chats”,内容:[“miaou1”,“miaou2”]},
{id:“/oiseaux”,内容:[“cui1”,“cui2”]}
];
const updated=datas.reduce(
(会计科目,当前)=>({
…acc,
[当前id.split(“/”[1]]:当前内容,
//或者
//[当前id.slice(1)]:当前内容
}),
{}
);

控制台日志(更新)您应该基于数据数组构造新对象,例如

    let newObj = {};    
    datas.foreach(item => {
    newObj[item['id']] = item['content'];  
    })

将数组映射到条目数组[键,值],并使用
对象将其转换为对象。fromEntries()

const数据=[
{id:“/chiens”,内容:[“waf1”,“waf2”]},
{id:“/chats”,内容:[“miaou1”,“miaou2”]},
{id:“/oiseaux”,内容:[“cui1”,“cui2”]}
];
const result=Object.fromEntries(datas.map({id,content})=>[
id.replace(“/”,“”),
所容纳之物
]));

控制台日志(结果)您也可以使用forEach来实现这一点

const数据=[
{id:'/chiens',内容:['waf1','waf2']},
{id:'/chats',内容:['miaou1','miaou2']},
{id:'/oiseaux',内容:['cui1','cui2']}
]
const result={};
forEach数据((el)=>{
const key=el.id.substring(1,(el.id.length));
结果[键]=el.内容;
});
console.log(结果)
您可以按如下操作

[
    { id: '/chiens', content: ['waf1', 'waf2'] },
    { id: '/chats', content: ['miaou1', 'miaou2'] },
    { id: '/oiseaux', content: ['cui1', 'cui2'] },
].reduce((acc, ele) => {
    const newContent = (acc[ele.id.replace('/', '')] = ele.content);
    return { ...acc, newContent };
}, {});

到目前为止,您尝试了什么?发布一段代码片段,显示您的尝试。您是对的,我必须这样做。我尝试了两个步骤,减少。。。