/* Необходимо написать функцию для подсчета суммы

javascript function sum(arr) { let total = 0;

Короткий ответ

Что ответить на собеседовании

javascript function sum(arr) { let total = 0;

Подробный разбор

Ответ с пояснениями

Условие

/* Необходимо написать функцию для подсчета суммы всех числовых значений в массиве. Валидными числовыми значениями являются так же строки, которые начинаются с цифр. В этом случае в качестве числового значения нужно использовать эту начальную последовательность цифр. Массив может содержать любые типы данных, быть не плоским.

Нельзя использовать встроенные методы типа .flat, .flatMap */

function sum(arr) { // ... }

console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

Ответ

javascript function sum(arr) { let total = 0;

function helper(a) { for (const item of a) { if (typeof item === 'number') { total += item; } else if (typeof item === 'string') { const match = item.match(/^\d+/); if (match) { total += Number(match[0]); } } else if (Array.isArray(item)) { helper(item); } // Другие типы игнорируем } }

helper(arr); return total; }

console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]])); // 11


Функция рекурсивно обходит массив, проверяет каждый элемент:
- Если число — добавляет к сумме.
- Если строка, пытается извлечь начальную последовательность цифр и добавить её.
- Если массив — рекурсивно вызывает себя.
- Остальные типы игнорируются.

Так мы считаем сумму всех числовых значений и строк, начинающихся с цифр, без использования `.flat` или `.flatMap`.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку