如何在javascript中比较矩阵的行

问题描述 投票:-1回答:2

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

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

matrix

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

请你帮助我好吗?谢谢?

javascript jquery arrays
2个回答
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")
        }
    }
 }

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

© www.soinside.com 2019 - 2024. All rights reserved.