Javascript 基于key&;对象的值

Javascript 基于key&;对象的值,javascript,node.js,excel,Javascript,Node.js,Excel,我正在尝试创建一个代码,该代码将接收如下输入: { "11": { "08/2011": 1 }, "12": { "08/2011": 2 }, "13": { "08/2011": 3 } } Excel => [ [ "" , "11" , "12" , "13" ], <- headers [ "08/2011" , 1 , 2 , 3 ] &l

我正在尝试创建一个代码,该代码将接收如下输入:

{
  "11": {
    "08/2011": 1
  },
  "12": {
    "08/2011": 2
  },
  "13": {
    "08/2011": 3
  }
}
Excel => [
          [ ""         , "11" , "12" , "13" ],  <- headers
          [ "08/2011"  ,  1   , 2    , 3    ]   <- first line
                                              ]
并将输出如下所示的数组:

{
  "11": {
    "08/2011": 1
  },
  "12": {
    "08/2011": 2
  },
  "13": {
    "08/2011": 3
  }
}
Excel => [
          [ ""         , "11" , "12" , "13" ],  <- headers
          [ "08/2011"  ,  1   , 2    , 3    ]   <- first line
                                              ]

可以使用
Object.keys()
和两个
forEach()。注意:
that
指第一个循环中的
this
,该循环是可选的
thisArg
参数

var输入={
"11": {
"08/2011": 1,
"09/2011": 1
},
"12": {
"08/2011": 2,
"10/2011": 1
},
"13": {
"08/2011": 3
}
}
var结果=[];
Object.keys(输入).forEach(函数(k,i){
(i==0)?result.push(['',k]):result[0]。push(k);
var=这个;
Object.key(输入[k]).forEach(函数(e){
如果(!该[e]){
即[e]=[e];
结果.推(即[e]);
}
[e][i+1]=输入[k][e];
})
}, {})
console.log(结果)
尝试以下操作:

//写起来很难,应该很难理解。
常量转换=输入=>[
[“”,…对象键(输入)]
,…[].concat(…对象.值(输入).map(对象.键))
.filter((x,i,arr)=>arr.indexOf(x)==i)
.map(first=>[first,…Object.values(input).map(x=>
Object.entries(x).find([key,value])=>key==first)).map(x=>x&&x[1])]
console.log(转换({
"11": {
"08/2011": 1,
"09/2011": 1
},
"12": {
"08/2011": 2,
"10/2011": 1
},
"13": {
"08/2011": 3
}
}))