Как увеличить четные числа массива на второй аргумент?
Если аргумент массив то нужно увеличить четные числа на delta и вернуть результирующий массив`
const increaseEvenEl = (arr, delta) => {
if(!Array.isArray(arr)){
return null
}
let result = 0;
for(let i = 0; i < arr.length; i++){
if(arr[i] % 2 === 0){
result = arr[i] + delta;
}
}
return result;
};
// examples
console.log(increaseEvenEl([2, 5, 6, 8, 11, 9, 4], 20)); // ===> [22, 5, 26, 28, 11, 9, 24]
console.log(increaseEvenEl([7, 11, 1], 10)); // ===> [7, 11, 1]
console.log(increaseEvenEl([], 120)); // ===> []
`
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
const increaseEvenEl = (arr, delta) => {
if(!Array.isArray(arr)){
return null
}
for(let i = 0; i < arr.length; i++){
if(arr[i] % 2 === 0){
arr[i] = arr[i] + delta;
}
}
return arr;
};
// examples
console.log(increaseEvenEl([2, 5, 6, 8, 11, 9, 4], 20)); // ===> [22, 5, 26, 28, 11, 9, 24]
console.log(increaseEvenEl([7, 11, 1], 10)); // ===> [7, 11, 1]
console.log(increaseEvenEl([], 120)); // ===> []
Автор решения: EzioMercer
→ Ссылка
Простой и однострочный вариант без мутации оригинального массива:
const increaseEvenEl = (arr, delta) => Array.isArray(arr) ? arr.map(x => x % 2 === 0 ? x + delta : x) : null;
// examples
console.log(increaseEvenEl([2, 5, 6, 8, 11, 9, 4], 20)); // ===> [22, 5, 26, 28, 11, 9, 24]
console.log(increaseEvenEl([7, 11, 1], 10)); // ===> [7, 11, 1]
console.log(increaseEvenEl([], 120)); // ===> []
console.log(increaseEvenEl(5, 120)); // ===> null
console.log(increaseEvenEl({map:(x) => console.log(x(2))}, 120)); // ===> null