Можно ли в данном пример применить цикл forEach?

const arr = [0, null, NaN, 0, 1, 2, 4, "str"]

let even = 0,
    odd = 0,
    zero = 0;

for (let i = 0; i < arr.length; i++) {
    if (typeof arr[i] === 'number' && !isNaN(arr[i])) {
        if (arr[i] === 0) {
            zero += 1;
        } else if (arr[i] % 2 === 0) {
            even += 1;
        } else {
            odd += 1;
        }
    }
}

console.log('четных элементов: ', even)
console.log('нечетных элементов: ', odd)
console.log('нулей: ', zero)

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

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

конечно можно, а в чем проблема?

arr.forEach(obj => {
    if (typeof obj === 'number' && !isNaN(obj)) {
        if (obj === 0) {
            zero += 1;
        } else if (obj % 2 === 0) {
            even += 1;
        } else {
            odd += 1;
        }
    }
})

можно также использовать for..of

for (obj of arr) {
    if (typeof obj === 'number' && !isNaN(obj)) {
        if (obj === 0) {
            zero += 1;
        } else if (obj % 2 === 0) {
            even += 1;
        } else {
            odd += 1;
        }
    }
}
→ Ссылка