Sobes.tech
Middle

/* Тизимда тўлиқ рақамли қийматлар бўлган массивдаги барча рақамли қийматларни ҳисоблаш учун функция ёзиш керак. Мувофиқ рақамли қийматлар ҳамда бошланғич рақамлар билан бошланган сатрлар бўлиши мумкин, уларни рақамли қиймат сифатида ҳисоблаш керак. Массив ҳар қандай турдаги маълумотларни ўз ичига олиши мумкин ва тўғри бўлмаслиги мумкин. **Ички методлар, масалан, .flat, .flatMap, ишлатилмаслиги керак** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

sobes.tech AI

AIdan javob

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`.