У меня есть массив чисел [22, 44, 12, 9, 4, 23, 1, 11, 10, 5, 2, 123]
, мне нужно использовать Reduce для создания объекта, который выглядит следующим образом:
{
numbersLessThanTen: [...],
numbersGreaterThanTen: [...]
}
У меня есть решение, которое приведено ниже:
const listOfNumbers = [22, 44, 12, 9, 4, 23, 1, 11, 10, 5, 2, 123];
const groupedBySize = listOfNumbers.reduce((total, next) => {
const less = total.numbersLessThanTen || [];
const more = total.numbersGreaterThanTen || [];
next > 10 ? total.numbersGreaterThanTen = [].concat(more, next) : total.numbersLessThanTen = [].concat(less, next);
return total;
}, {});
Мой вопрос: почему не работает следующее?Он просто возвращает начальное значение.Это работает, когда я использую .push () вместо .concat (), но я действительно хочу понять, почему этот способ не работает.Спасибо!
const groupedBySize = listOfNumbers.reduce((total, next) => {
// const less = total.numbersLessThanTen || [];
// const more = total.numbersGreaterThanTen || [];
next > 10 ? total.numbersGreaterThanTen.concat(next) : total.numbersLessThanTen.concat(next);
return total;
}, {numbersGreaterThanTen: [], numbersLessThanTen:[]});