@rayyamhk/matrix
Version:
A professional, comprehensive and high-performance library for you to manipulate matrices.
43 lines (31 loc) • 733 B
JavaScript
var isNumber = require('./isNumber');
module.exports = function isMatrix(matrix) {
if (!Array.isArray(matrix)) {
return false;
}
var height = matrix.length;
if (height === 0) {
return true; // [] represents empty matrix (0 x 0 matrix)
}
var firstRow = matrix[0];
if (!Array.isArray(firstRow)) {
return false;
}
var width = firstRow.length;
if (width === 0) {
return false; // [ [] ] is not allowed
}
for (var i = 0; i < height; i++) {
var row = matrix[i];
if (!Array.isArray(row) || row.length !== width) {
return false;
}
for (var j = 0; j < width; j++) {
if (!isNumber(row[j])) {
return false;
}
}
}
return true;
};
;