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;iconsole.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)};
});
控制台日志(结果)