Ваша функция не работает, потому что вы используете 0
в качестве начального значения, и оно меньше, чем все другие значения. Используйте Infinity
в качестве начального значения.
Примечание: вы переключаетесь между i
и j
здесь - array[j][i]
. Я также удалил бы условие и всегда преобразовывал бы в число (здесь я использовал оператор +
).
function minValue(array) {
let min = Infinity;
for (let i = 0; i < array.length; i++) {
for (let j = 0; j < array[i].length; j++) {
min = Math.min(min, +array[i][j]);
}
}
return min;
}
const matrix = [
[57, 71, 37, 99, 62, '83', '95', '54', 38, 25],
[8, 64, 100, '51', 43, 21, 21, 33, 11, 43],
[67, 25, 45, 67, 88, 72, 74, 77, 53, 38]
];
console.log(minValue(matrix));
Другой вариант - свести матрицу к одному массиву, отобразить все элементы в числа и распределить в Math.min()
:
const minValue = array => Math.min(...array.flat().map(Number));
const matrix = [
[57, 71, 37, 99, 62, '83', '95', '54', 38, 25],
[8, 64, 100, '51', 43, 21, 21, 33, 11, 43],
[67, 25, 45, 67, 88, 72, 74, 77, 53, 38]
];
console.log(minValue(matrix));