Я понятия не имею, почему моя функция min не работает, она продолжает давать мне 0 в качестве ответа - PullRequest
0 голосов
/ 17 апреля 2020

Итак, этот код функции, который я придумал, я не знаю, что с ним не так. Он продолжает давать 0 в качестве моего кода.

function minValue(array) {
  let min = 0;
  for (let i = 0; i < array.length; i++) {
    for (let j = 0; j < array[i].length; j++) {
      if (array[j][i] == "string") {
        min = Math.min(min, parseInt(array[j][i]));
      } else {
        min = Math.min(min, array[j][i]);
      }
    }
  }
  return min;
}
let 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));

Я продолжаю получать 0 в качестве ответа.

1 Ответ

1 голос
/ 17 апреля 2020

Ваша функция не работает, потому что вы используете 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...