Javascript 将不同键的值放入单个数组
我有以下对象数组:Javascript 将不同键的值放入单个数组,javascript,arrays,json,ecmascript-6,Javascript,Arrays,Json,Ecmascript 6,我有以下对象数组: [ { "name": "product1", "Jan": 3, "Feb": 2, "Mar": 0, "Apr": 1, "May": 3, "Jun": 0, "Jul": 0, "Aug": 0, "Sep": 5, "Oct": 0, "Nov": 0, "Dec": 0 }, { "name": "product2", "Jan":
[
{
"name": "product1",
"Jan": 3,
"Feb": 2,
"Mar": 0,
"Apr": 1,
"May": 3,
"Jun": 0,
"Jul": 0,
"Aug": 0,
"Sep": 5,
"Oct": 0,
"Nov": 0,
"Dec": 0
},
{
"name": "product2",
"Jan": 4,
"Feb": 0,
"Mar": 0,
"Apr": 1,
"May": 1,
"Jun": 0,
"Jul": 0,
"Aug": 0,
"Sep": 5,
"Oct": 0,
"Nov": 0,
"Dec": 0
}
]
我希望将所有月份的值传递给一个数组,并遵循月份的顺序,如下所示:
[
{
"name": "product1",
"data": [3, 2, 0, 1, 3, 0, 0, 0, 5, 0, 0, 0],
},
{
"name": "product2",
"data": [4, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0],
}
]
那么我该怎么做呢?
let数据=[{
“名称”:“产品1”,
“一月”:3日,
"二月":二,,
“三月”:0,
"四月":一,,
"五月":三,,
“君”:0,
“七月”:0,
“八月”:0,
“9月5日”,
“十月”:0,
“11月”:0,
“十二月”:0
},
{
“名称”:“产品2”,
“一月”:4日,
“二月”:0,
“三月”:0,
"四月":一,,
"五月":一,,
“君”:0,
“七月”:0,
“八月”:0,
“9月5日”,
“十月”:0,
“11月”:0,
“十二月”:0
}
];
函数GetData(数据){
设res=[];
for(设i=0;i console.log(GetData(data))
您可以映射它和内部,将名称
取出并获取对象。值()
的剩余值
:
var数组=[{“name”:“product1”,“Jan”:3,“Feb”:2,“Mar”:0,“Apr”:1,“May”:3,“Jun”:0,“Jul”:0,“Aug”:0,“Sep”:5,“Oct”:0,“Nov”:0,“Dec”:0},{“name”:“product2”,“Jan”:4,“Feb”:0,“Mar”:0,“Apr”:1,“May”:1,“Jun”:0,“Jul”:0,“Aug”:0,“Sep”:5,“Oct”:0,“Oct”:0,“Nov”:0,“Dec”:0,“Dec”:0}]
var result=array.map(({name,…rest})=>({name,data:Object.values(rest)}));
控制台日志(结果)代码>使用映射来迭代对象数组。将name
与其余条目分开,并返回一个名为name
的对象和其余的对象(使用object.values()
)。
var arr=[{name:“product1”,一月:3,二月:2,三月:0,四月:1,五月:3,六月:0,七月:0,八月:0,九月:5,十月:0,十一月:0,十二月:0},{name:“product2”,一月:4,二月:0,三月:0,四月:1,五月:1,六月:0,七月:0,八月:0,九月:5,十月:0,十一月:0,十一月:0,十二月:0}];
var结果=arr.map(项目=>{
设{name,…rest}=item;
返回{name,data:Object.values(rest)};
});
控制台日志(结果)代码>