检查 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 程序设计
C++
C#
MongoDB
MySQL
Javascript
PHP