Сортировать и вернуть разницу в задаче массива, возвращая Undefined - PullRequest
0 голосов
/ 25 марта 2020

Функция должна принять несортированный массив (возраст) в качестве параметра, а затем вернуть массив: наименьшее число, наибольшее число, разница между ними.

function differenceInAges(ages){
let firstArr = ages;
let sortArr = firstArr.sort();
let last = sortArr.slice(-1);
let diff = last - sortArr[0];
let ansArr = [sortArr[0], last, diff];

}

Когда аргумент передается этому функция возвращается как неопределенная.

1 Ответ

1 голос
/ 25 марта 2020

В вашем коде обнаружены следующие проблемы:

  1. Нет return определено.

  2. Array.sort() выполняет только сортировку строк. Для сортировки чисел c вам необходимо определить функцию. (Я добавил, что)

  3. Используя тот же массив с оператором присваивания без оператора распространения, это скопирует тот же экземпляр в firstArr, ages, sortArr

Надеюсь, это решение - то, что вы ищете.

function differenceInAges(ages){
  let firstArr = ages;
  let sortArr = [...firstArr].sort(sortNumber);
  let last = sortArr.slice(-1)[0];
  let diff = last - sortArr[0];
  let ansArr = [sortArr[0], last, diff];
  return ansArr;
}
function sortNumber(a, b) {
  return a - b;
}
console.log(differenceInAges([10, 20, 5, 25, 30]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...