Изменить функцию с побочными эффектами на pure function
Функция changeEven(numbers, value) принимает массив чисел numbers и обновляет каждый элемент, значение которого это чётное число, добавляя к нему значение параметра value.
Выполнить рефакторинг функции так, чтобы она стала чистой - не изменяла массив чисел numbers, а создавала, наполняла и возвращала новый массив с обновлёнными значениями.
function changeEven(numbers, value) {
// Change code below this line
for (let i = 0; i < numbers.length; i += 1) {
if (numbers[i] % 2 === 0) {
numbers[i] = numbers[i] + value;
}
}
}
мой вариант
function changeEven(numbers, value) {
const newArray = [];
numbers.forEach(element => {
if (numbers % 2 === 0) {
newArray.push(element + value)
}
});
return newArray
}
console.log(changeEven([1, 2, 3, 4, 5], 10))
console.log(changeEven([17, 24, 68, 31, 42], 100))
что мне нужно добавит(изменить)?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Надо заменить это:
if (numbers % 2 === 0) {
на это:
if (element % 2 === 0) {
а также дописать:
else newArray.push(element)
чтобы вставлять неизменённые нечётные элементы в массив