У меня есть этот код для класса, в котором я должен использовать метод reduce() для поиска минимального и максимального значений в массиве. Однако нам требуется использовать только один вызов, чтобы уменьшить. Возвращаемый массив должен иметь размер 2, но я знаю, что метод reduce() всегда возвращает массив размера 1. Я могу получить минимальное значение, используя приведенный ниже код, однако я не знаю, как получить максимальное значение в том же вызове. Я предполагаю, что как только я получу максимальное значение, я просто помещу его в массив после завершения метода reduce().
/**
* Takes an array of numbers and returns an array of size 2,
* where the first element is the smallest element in items,
* and the second element is the largest element in items.
*
* Must do this by using a single call to reduce.
*
* For example, minMax([4, 1, 2, 7, 6]) returns [1, 7]
*/
function minMax(items) {
var minMaxArray = items.reduce(
(accumulator, currentValue) => {
return (accumulator < currentValue ? accumulator : currentValue);
}
);
return minMaxArray;
}
but I know that the reduce() method always returns an array of size 1
- это неверно. Кроме того, сокращение — это просто метод для перебора массива с обратным вызовом, подумайте о том, какие другие переменные вы можете иметь в области видимости внутри вашего методаminMax
, которые вы можете использовать в итераторе. Подсказка: судя по вашему описанию, вам вовсе не обязательно использовать возвращаемое значениеreduce
. - person Adam   schedule 23.04.2017initValue
изaccumulator
- person charlietfl   schedule 23.04.2017