UNPKG

@rayyamhk/matrix

Version:

A professional, comprehensive and high-performance library for you to manipulate matrices.

43 lines (31 loc) 733 B
"use strict"; 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; };