检查 JavaScript 中特定类型的矩阵
问题
我们需要编写一个 JavaScript 函数,其采用一个文字 2-D 数组 arr 作为第一个且唯一参数。
我们的函数应检查每一个从左上到右下的对角线是否具有相同的元素。
如果是,我们应返回 true,否则返回 false。
例如,如果函数的输入为
输入
const arr = [ [6, 7, 8, 9], [2, 6, 7, 8], [1, 2, 6, 7], ];
输出
const output = true;
输出说明
在上边数组中,对角线为 −
[1], [2,2], [6,6,6], [7,7,7], [8,8], [9]
每个对角线中的所有元素都相同,因此答案为 True。
示例
以下为代码 −
const arr = [ [6, 7, 8, 9], [2, 6, 7, 8], [1, 2, 6, 7], ]; const checkMatrix = (arr = []) => { const validate = (row, col) => { while ( row < arr.length && col < arr[0].length && arr[row + 1] && arr[row + 1][col + 1] !== undefined ) { if (arr[row + 1][col + 1] !== arr[row][col]) { return false } row += 1 col += 1 } return true } for (let i = 0; i < arr[0].length; i++) { if (!validate(0, i)) { return false } } for (let i = 0; i < arr.length; i++) { if (!validate(i, 0)) { return false } } return true } console.log(checkMatrix(arr));
输出
true
广告