0 javascript arrays algorithm loops
大家好,提前感谢您的帮助。
所以我想找到二维数组中最大的数字。下面是代码:
const matrix = [
[2, 56, 10],
[20, 34, 10],
[23, 144, 26]
];
let maximum = matrix[0][0];
for (var row = 0; row < matrix.length; row++) {
for (var col = 0; col < matrix.length; col++) {
if (matrix[row][col] > maximum) {
maximum = matrix[row][col];
};
};
};
document.write(' -- ', maximum);Run Code Online (Sandbox Code Playgroud)
这是我的问题- 您能否帮助我理解为什么当我在数组中有更多数字时我看不到最大数字 - 请在下面找到一个示例):
const matrix = [
[2, 56, 10, 14, 422, 3242],
[20, 34, 55, 100, 33, 422],
[23, 12, 14, 26, 203, 233]
];
let maximum = matrix[0][0];
for (var row = 0; row < matrix.length; row++) {
for (var col = 0; col < matrix.length; col++) {
if (matrix[row][col] > maximum) {
maximum = matrix[row][col];
};
};
};
document.write(' -- ', maximum);Run Code Online (Sandbox Code Playgroud)
row < matrix.length测试正确的事情。col < matrix.length不:您应该将其替换为col < matrix[row].length.
然而,有一种更简单的方法,使用一些较新的 JavaScript 功能:
const matrix = [[2,56,10,14,422,3242],[20,34,55,100,33,422],[23,12,14,26,203,233]];
const maximum = Math.max(...matrix.flat())
console.log(maximum);Run Code Online (Sandbox Code Playgroud)
matrix.flat()会将二维数组展平为一维,...语法会将一维数组中的每个值作为其自己的参数传递给Math.max,然后找到最大的值。