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
}
}))