matrix-transpose
Version:
Transposes a matrix by switching the row and column indices of a multidimensional array.
25 lines (24 loc) • 715 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transpose = transpose;
function transpose(matrix, options) {
if (options === void 0) { options = {}; }
var rowsCount = matrix.length;
var output = [];
var excludeEmpty = options.excludeEmpty;
for (var r = 0; r < rowsCount; r++) {
var row = matrix[r];
var columnsCount = row.length;
for (var c = 0; c < columnsCount; c++) {
var item = row[c];
output[c] = output[c] || [];
if (excludeEmpty) {
output[c].push(item);
}
else {
output[c][r] = item;
}
}
}
return output;
}