簡體   English   中英

如何將表格行數據轉換為 javascript 中的列數據

[英]How can I convert tabular row data to column data in javascript

所以我需要將包含表格行數據的數組轉換為特定格式的列數據,以便我可以使用它來顯示帶有 Recharts 的圖表。

我的數據格式如下:

rows = [
    ['Year', '2010', '2011', '2012', '2013'], 
    ['wages','2000','2000','2050','2050'], 
    ['purchase cost', '4000', '4300', '4500', '5000']
]

我需要將數據格式化如下:

columns = [
    {'Year' : '2010', 'wages' : '2000', 'purchase cost' : '4000'}, 
    {'Year' : '2011', 'wages' : '2000', 'purchase cost' : '4300'}, 
    {'Year' : '2012', 'wages' : '2050', 'purchase cost' : '4500'}, 
    {'Year' : '2013', 'wages' : '2050', 'purchase cost' : '5000'}
]

我已經接近獲得所需的結果,但似乎無法使其正常工作,因此我將不勝感激!

堅持兩個原則

  1. 子數組的長度都相同。
  2. 子數組的第一個元素是列名。

我分幾步實現的,你可以參考下面的代碼。

 const rows = [ ['Year', '2010', '2011', '2012', '2013'], ['wages', '2000', '2000', '2050', '2050'], ['purchase cost', '4000', '4300', '4500', '5000'] ]; const property = rows.map(row => row[0]); const columns = rows.map(row => { row.shift(); return row }); const data = columns.map((column, i) => { return column.map(col => { const obj = {}; obj[property[i]] = col; return obj; }); }); const result = new Array(columns[0].length); for (let i = 0; i < result.length; i++) { const obj = {}; for (let j = 0; j < property.length; j++) { for (const [key, value] of Object.entries(data[j][i])) { obj[key] = value; } } result[i] = obj; } console.log(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM