Отделить числа от символов

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2023

Решаю задачку на кодеварз, застрял. При значениях аргумента x = [6, 'c'] код работает неправильно, получается значение '6c' Если в х первым идет символ, например, x = ['a', 3], то все работает правильно. Нужно суммировать все числа в х, опуская символы. Где я ошибаюсь?

const explode = x => {
  let count = x.reduce((pre, val) => (typeof pre === 'number' ? pre : 0) + val, 0)
  return count
}

Ответы

▲ 1

Вы на тип проверяете значение аккумулятора(pre), а надо значение текущего итерируемого элемента массива(val):

const d = [4, 'c'];
const c = ['c', 5];

const explode = x => {
  return x.reduce((pre, val) => (typeof val === 'number' ? val : 0) + pre, 0);
}

console.log(explode(d));
console.log(explode(c));