我想知道如何比较矩阵的行元素。我想这样做来验证所有行元素是否都是自身的多个。我已经知道,如果他们mod == 0
,则数字是另一个数字的倍数。
但是,我们假设我有这个矩阵
所以我想比较第一行和数字4和8,所以所有元素都是它们的倍数,因为4是8的倍数,另一行是5和10。
你能帮帮我吗?谢谢?答案 0 :(得分:0)
我猜测矩阵是嵌套数组。您可以执行2次循环并将第一个数字存储为模数。
例如 这只会显示在您的控制台上,显示哪一行不符合您的规则
var arr = [[4, 8], [5, 11]]
for (var i=0; i<arr.length; i++) {
for (var j=0; j<arr[i].length; j++) {
var compare = arr[i][0]
// compare here
if (arr[i][j] % compare == 0){
// console.log(true)
} else {
console.log("Matrix row #" + i + " is not divisible by first number")
}
}
}
答案 1 :(得分:0)
如果您想要的只是一个真/假,那么您可以做一些像@rsutti建议的那样:
var arr = [[4, 8, 11, 16], [5, 10, 15, 20]];
function checkArr(a){
for (var i = 0; i < a.length; i++) {
var indexZero = a[i][0];
for (var j = 1; j < a[i].length; j++) {
var min = Math.min(indexZero, a[i][j]);
var max = Math.max(indexZero, a[i][j]);
if (max % min !== 0){
return false;
}
}
}
return true;
}
console.log(checkArr(arr));
简单地做一个双循环,使用头部进行模数。你必须找到最小值和最大值。该函数在第一次失败条件时返回false。当然,您可能希望稍后修改此内容,因为您没有在失败时说明您想要的内容。