如何在javascript

时间:2018-03-04 04:14:36

标签: javascript jquery arrays

我想知道如何比较矩阵的行元素。我想这样做来验证所有行元素是否都是自身的多个。我已经知道,如果他们mod == 0,则数字是另一个数字的倍数。

但是,我们假设我有这个矩阵

matrix

所以我想比较第一行和数字4和8,所以所有元素都是它们的倍数,因为4是8的倍数,另一行是5和10。

你能帮帮我吗?谢谢?

2 个答案:

答案 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。当然,您可能希望稍后修改此内容,因为您没有在失败时说明您想要的内容。