Замена нулей в массиве на следующее ненулевое число

Как написать метод, который будет заменять 0 на рядом идущее число:
Чтобы из этого:

[0, 0, 3, 0, 4]

Получилось это:

[3, 3, 3, 3, 4]

Из этого:

[1, 2, 4, 0, 0]

Вот это:

[1, 2, 4, 4, 4]

Из этого:

[1, 2, 5, 0, 5]

Вот это:

[1, 2, 5, 5, 5]

Из этого:

[1, 2, 0, 6, 6]

Вот это:

[1, 2, 6, 6, 6]

Ответы (1 шт):

Автор решения: FixiDens

Вопрос решен, тут - спасибо @hev1.

const arr = [1, 2, 4, 0, 0];
const replacement = arr.find((n, i) => n !== 0 && arr[i - 1] === 0) || arr.find((n, i) => n !== 0 && arr[i + 1] === 0);
const res = arr.map(x => x || replacement);
console.log(res);

→ Ссылка