Javascript 操纵数组中的对象

Javascript 操纵数组中的对象,javascript,arrays,object,Javascript,Arrays,Object,嗨,我正试图操纵一个包含多个对象的数组来返回一个新对象 我有这个- var input =[ {make:"BMW", model:"320d"}, {make:"TATA", model:"aria"}, {make:"Maruti", model:"800"}, {make:"Maruti", model:"wagnor&quo

嗨,我正试图操纵一个包含多个对象的数组来返回一个新对象

我有这个-

var input =[
  {make:"BMW", model:"320d"},
  {make:"TATA", model:"aria"},
  {make:"Maruti", model:"800"},
  {make:"Maruti", model:"wagnor"},
  {make:"BMW", model:"720d"},
  {make:"BMW", model:"320d"}  
];
我想把它转换成这个-

output= { BMW:["320d","720d"],  Tata:['aria'],  Maruti:['800','wagonar']}
请提供帮助,我正在努力寻找一种方法。

您可以简单地使用来根据对象中的
make
键对数据进行分组

var输入=[
{品牌:“宝马”,型号:“320d”},
{制作:“塔塔”,模型:“咏叹调”},
{制造:“Maruti”,型号:“800”},
{make:“Maruti”,model:“wagnor”},
{品牌:“宝马”,型号:“720d”},
{品牌:“宝马”,型号:“320d”}
];
var res=输入。减少((会计科目,项目)=>{
如果(!acc[项目制造]){
acc[item.make]=[item.model];
}否则{
acc[item.make].push(item.model);
}
返回acc;
}, {});

控制台日志(res)使用
forEach
并构建一个对象。 如果
(make)已存在,请不要添加键 如果
(型号)已存在,请不要添加值

var输入=[
{品牌:“宝马”,型号:“320d”},
{制作:“塔塔”,模型:“咏叹调”},
{制造:“Maruti”,型号:“800”},
{make:“Maruti”,model:“wagnor”},
{品牌:“宝马”,型号:“720d”},
{品牌:“宝马”,型号:“320d”},
];
常量进程=(arr)=>{
常量输出={};
arr.forEach({make,model})=>{
输出[制造]??=[];
!输出[make]。包括(模型)和输出[make]。推送(模型);
});
返回输出;
};

console.log(进程(输入))您可以添加一些您尝试过的示例吗?尝试查看阵列原型中方法的文档。你可以在你的输入上使用这些来达到你想要的输出。您需要遍历
输入
数组中的每个项,从这两个属性中读取值,并使用它们在
输出
对象中创建/追加值。