Как найти сумму чисел массива? [для массива с данными разных типов]

Всем привет, подскажите, пожалуйста, как решить следующую задачу?
В круглых скобках входные данные, далее результат.

// ([1, 2, '3x']) => 6
// ([1, 2, 'x3']) => 3
// ([1, [1, 2], 2]) => 6

Привет. Знаешь как решить задачу для ситуации когда все значения массива - числа? Можешь показать код?

const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;

// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10

// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15

Надо строчки привести к числам, иначе сложение будет выдавать сложение строк. Но это не сработает потому-что строчка состоит не только из цифр и выведет NaN, можно разбить строчку на символы и удалить x, потом соединить и перевести в число и сложить. Все что сгенерировал мой мозг)(сложение строк будет только когда возле плюса строка, 1 + 1 +“1” будет выдавать 21)

Привет!
Вот мой вариант решения твоей задачи:

 function summArray (currArray) {
    return currArray.reduce((accumulator, currentValue) => {
       let parsedCurrVal = 0;
       // если текущий элемент массив
       if(Array.isArray(currentValue)) {
         parsedCurrVal = summArray(currentValue);
       // если преобразование элемента с помощью parseInt не NaN
       } else if (!isNaN(parseInt(currentValue))) {
         parsedCurrVal = parseInt(currentValue);
       }
       return accumulator + parsedCurrVal
    }, 0)
  }

  console.log(summArray([1, [1, 2], 2])); //6 
  console.log(summArray([1, 2, '3x'])) // 6
  console.log(summArray([1, 2, 'x3'])) // 3

Спасибо.