You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
649 B
27 lines
649 B
import calculateCellWidthIndex from './calculateCellWidthIndex'; |
|
|
|
/** |
|
* Produces an array of values that describe the largest value length (width) in every column. |
|
* |
|
* @param {Array[]} rows |
|
* @returns {number[]} |
|
*/ |
|
export default (rows) => { |
|
if (!rows[0]) { |
|
throw new Error('Dataset must have at least one row.'); |
|
} |
|
|
|
const columns = new Array(rows[0].length).fill(0); |
|
|
|
rows.forEach((row) => { |
|
const columnWidthIndex = calculateCellWidthIndex(row); |
|
|
|
columnWidthIndex.forEach((valueWidth, index0) => { |
|
if (columns[index0] < valueWidth) { |
|
columns[index0] = valueWidth; |
|
} |
|
}); |
|
}); |
|
|
|
return columns; |
|
};
|
|
|