js矩阵转置_js对象数组矩阵转置(⾏转列)的实践
最近项⽬中有个需求需要将⼀个类似⼆维数组的数据矩阵转置(⾏转列)我通过查资料发现这是很简单的。只需要经过下⾯的处理就没问题了。但。。。
var newArray = tansDatas[0].map(function (col, i) {
return tansDatas.map(function (row) {
return row[i];
})
});
但是我发现我的数据是对象数组就是下⾯那样
原始数据tableRows
如何转化呢?我从刚才的⼆维数组⾏转列中获取到灵感只需要获取keys和数组中每⼀个对象的values就⾏了,然后再将⼆维数组以其中某⾏数据作为keys⽣成新的对象数组就ok了,下⾯是代码,欢迎进⼊我
的博客⽹站查看代码详情:点击查看代码www.front-
end.xin/article/det…transformDatas = (tableRows) => { if (!tableRows.length) return console.log("tableRows ", tableRows) let tansDatas = [] for(let i = 0; i < tableRows.length; i++){ let item = tableRows[i] if(i===0){ let keys = Object.keys(item) tansDatas.push(keys) } let values = Object.values(item) tansDatas.push(values) } console.log("tansDatas ", tansDatas) //⼆维数组⾏转列 var newArray = tansDatas[0].map(function (col, i) { return tansDatas.map(function (row) { return row[i]; }) }); console.log("newArray", newArray) //⼆维数组重新⽣成新的对象数组 let keyRow = newArray[5]//已⾏转列后,然后以其中任意⼀⾏作为新数组中每个对象的key let tansformNewData = [] for(let j= 0;j< newArray.length;j++){ let obj = {} for(let k=0;k
使⽤Object.keys(item)和 Object.values(item)取出keys和values后
对tansDatas进⾏⾏转列处理后
js 二维数组
⾏转列后,我想以newArray[5] = ["periodEnd", 1567008000000, 1535558400000]作为新的对象数组的key以反映各个数据随periodEnd(周期结束时间点)变化的情况。当然你可以选择你想要的任意⼀⾏作为key。
⽣成以["periodEnd", 1567008000000, 1535558400000]为key的新对象数组
我们来看看转化前后对照图
这⾥以react项⽬antd table组件为例
复制代码
⾏  → 列

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。