Как увеличить четные числа массива на второй аргумент?

Если аргумент массив то нужно увеличить четные числа на 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

→ Ссылка