从用逗号分隔的对象收集数据,并将其作为单个对象-Javascript

从用逗号分隔的对象收集数据,并将其作为单个对象-Javascript,javascript,arrays,object,Javascript,Arrays,Object,我有一个包含各种对象的数组。这些对象包含以逗号分隔的数据。我想从对象中删除这些数据,并将其作为单个对象(包括同一日期): 我的目标是从每个对象中提取数据,并使它们以相同的日期对象自己: Array = [3] 0: Object { year: "march 2019", "turnover": 120, "employee": 1000, "cars":232 } 1: Object { year: "april 2019", "turnover": 123, "employee": 13

我有一个包含各种对象的数组。这些对象包含以逗号分隔的数据。我想从对象中删除这些数据,并将其作为单个对象(包括同一日期):

我的目标是从每个对象中提取数据,并使它们以相同的日期对象自己:

Array = [3]
 0: Object { year: "march 2019", "turnover": 120, "employee": 1000, "cars":232 }
 1: Object { year: "april 2019", "turnover": 123, "employee": 1340, "cars":682 }
 2: Object { year: "june 2019", "turnover": 1343, "employee": 760, "cars": 4345 }

Array = [9]
 0: Object { year: "march 2019", "turnover": 120 }
 1: Object { year: "march 2019" , "employee": 1000 }
 2: Object { year: "march 2019", "cars":232 }
 3: Object { year: "april 2019", "turnover": 123 }
 4: Object { year: "april 2019", "employee": 1340 }
 5: Object { year: "april 2019","cars":682 }
 6: Object { year: "june 2019", "turnover": 1343 }
 7: Object { year: "june 2019", "employee": 760 }
 8: Object { year: "june 2019","cars": 4345 }

我感谢你的帮助


谢谢

您可以将对象分解和
object.keys()
与简单的迭代结合使用:

var数组=[
{年份:“2019年3月”,“营业额”:120,“员工”:1000,“汽车”:232},
{年份:“2019年4月”,“营业额”:123,“员工”:1340,“汽车”:682},
{年份:“2019年6月”,“营业额”:1343,“员工”:760,“汽车”:4345}
];
var结果=[];
array.forEach((条目)=>{
var{year,…rest}=条目;
Object.keys(rest.forEach((key)=>result.push({year[key]:rest[key]}));
});

控制台日志(结果)
您可以将对象分解和
object.keys()
与简单迭代结合使用:

var数组=[
{年份:“2019年3月”,“营业额”:120,“员工”:1000,“汽车”:232},
{年份:“2019年4月”,“营业额”:123,“员工”:1340,“汽车”:682},
{年份:“2019年6月”,“营业额”:1343,“员工”:760,“汽车”:4345}
];
var结果=[];
array.forEach((条目)=>{
var{year,…rest}=条目;
Object.keys(rest.forEach((key)=>result.push({year[key]:rest[key]}));
});
控制台日志(结果)
var testarr=[{年份:“2019年3月”,“营业额”:120,“员工”:1000,“汽车”:232},{年份:“2019年3月”,“营业额”:120,“员工”:1000,“汽车”:232}]
var finalArr=[];
对于(i=0;i
var testarr=[{年份:“2019年3月”,“营业额”:120,“员工”:1000,“汽车”:232},{年份:“2019年3月”,“营业额”:120,“员工”:1000,“汽车”:232}]
var finalArr=[];

对于(i=0;我能请你解释一下整个arr.forEach部分吗?。这将非常有帮助。我无法理解{year[key]:rest[key]}部分……谢谢你,塞巴斯蒂安,它工作得很好。我不知道“…rest”的语法。我也想问你,你知道如何明确删除每个名为“营业额”的数据吗?我试过使用splice函数,但没有成功。谢谢如果您想从
结果
数组中删除
营业额
项,可以使用
.filter()
结果=结果。过滤器((e)=>!e.flower)
@SarathAntony
.forEach()中的第一行
只是一个对象分解。第二部分迭代
rest
对象中的每个键(除
year
之外的所有键),并将每个键作为新对象推送到结果数组中。
{[key]:rest[key]}
语法意思是:创建一个对象,该对象的键名存储在
key
变量中,值存储在
key
key下的
rest
对象中。你能解释一下整个arr.forEach部分吗???。这会很有帮助。我无法理解{year[key]:rest[key]}第…部分…谢谢你,Sebastian,它工作得很好。我不知道“…rest”的语法。我也想问你,你知道如何最终删除每个名为“营业额”的数据吗?我试过使用splice函数,但没有成功。谢谢如果您想从
结果
数组中删除
营业额
项,可以使用
.filter()
结果=结果。过滤器((e)=>!e.flower)
@SarathAntony
.forEach()中的第一行
只是一个对象分解。第二部分迭代
rest
对象中的每个键(除
year
之外的所有键),并将每个键作为新对象推送到结果数组中。
{[key]:rest[key]}
语法意味着:创建一个对象,其中键名存储在
key
变量中,值存储在
rest
对象的
key
键下
var testarr = [{ year: "march 2019", "turnover": 120, "employee": 1000, "cars":232 },{ year: "march 2019", "turnover": 120, "employee": 1000, "cars":232 }]

var finalArr = [];
for(i=0;i<testarr.length;i++){

    for (key in testarr[i]){
        var yearjson = { "year" : testarr[i]["year"]}
        if(key != "year"){
            yearjson[key] = testarr[i][key]
            finalArr.push(yearjson)
        } 
    } 

}
console.log(finalArr)