В методе push()
внутри reduce()
возникает ошибка undefined
из-за того, что в начальном значении аккумулятора не указано исходное значение, и поэтому первое значение, передаваемое в метод push()
, равно undefined
. Чтобы исправить эту ошибку, вам необходимо задать начальное значение для аккумулятора в reduce()
.
Вот пример кода, который демонстрирует исправление этой проблемы:
const arr = [1, 2, 3]; const result = arr.reduce((acc, curr) => { acc.push(curr); return acc; }, []); console.log(result);
В данном примере мы используем пустой массив []
в качестве начального значения аккумулятора в reduce()
. Теперь метод push()
будет вызываться с корректным начальным значением, и ошибка undefined
больше не возникнет.
Если у вас уже есть начальное значение аккумулятора, и вы не можете использовать пустой массив, то вам необходимо проверить каждое значение перед добавлением его в аккумулятор на равенство undefined
. Вот пример кода, демонстрирующий такой подход:
const arr = [1, undefined, 2, 3]; const result = arr.reduce((acc, curr) => { if (typeof curr !== 'undefined') { acc.push(curr); } return acc; }, []); console.log(result);
В этом примере мы проверяем curr
на равенство undefined
перед его добавлением в аккумулятор. Если значение curr
не равно undefined
, то мы добавляем его в аккумулятор с помощью метода push()
. Таким образом, мы исключаем значения undefined
из результата.
Исправление ошибки undefined
в методе push()
внутри reduce()
зависит от ваших конкретных потребностей и логики вашей программы. Вы можете выбрать один из предложенных вариантов или адаптировать подход в соответствии с вашими требованиями.