Mini-Max Sum - возвращает два (или более) разнесенных числа с помощью JavaScript - PullRequest
1 голос
/ 23 июня 2019

Я понимаю, что подобный вопрос задавался ранее.

Но согласно этой задаче кодирования мне нужно вернуть сумму "минимального массива" (наименьшее 4 числа) и "максимального массива" (наибольшего 4 числа) в одной строке как две чисел , разделенных пробелом. Не в виде массива, строки или объекта.

Формат вывода

Выведите два разделенных пробелом длинных целых числа, обозначающих соответствующие минимальное и максимальное значения, которые можно рассчитать путем суммирования ровно четырех из пяти целых чисел. (Выход может быть больше 32-разрядного целого числа.)

У меня есть:

function miniMaxSum(arr) {
  arr = arr.sort((a, b) => a - b);
  let smallest = arr.slice(0, -1);
  let largest = arr.slice(1, arr.length);
  let first = Number(smallest.reduce((a, b) => a + b));
  let second = Number(largest.reduce((a, b) => a + b));

  return first + " " + second;
}

И когда я возвращаю first и second, они возвращаются в виде строк вместо цифр, я предполагаю, что это потому, что я добавил + " " + между ними.

Итак, как мне вернуть их как числа с пробелом между ними?

Я также пытался return Number(first) + " " + Number(second);, но это не имеет значения, они все еще возвращаются в виде строки.

Аналогично, хранение сумм в объекте:

function miniMaxSum(arr) {
  arr = arr.sort((a, b) => a - b);
  let smallest = arr.slice(0, -1);
  let largest = arr.slice(1, arr.length);
  let first = Number(smallest.reduce((a, b) => a + b));
  let second = Number(largest.reduce((a, b) => a + b));
  let object = {first, second};
  return Object.values(object);
}

также возвращает значения в виде массива.

1 Ответ

2 голосов
/ 23 июня 2019

Вы не можете return их - если вы посмотрите на код тестирования:

miniMaxSum(arr);

Он не регистрирует результат - просто запускает ваш код.Регистрация результатов вместо этого работает отлично:

console.log(first + " " + second);
...