Sobes.tech
Middle

/* Nepieciešams uzrakstīt funkciju, kas aprēķina visu skaitlisko vērtību summu masīvā. Derīgas skaitliskās vērtības ir arī virknes, kas sākas ar cipariem. Šajā gadījumā jāizmanto šī sākuma ciparu secība kā skaitliskā vērtība. Masīvs var saturēt jebkāda veida datus un nebūt vienkāršs. **Nav atļauts izmantot iebūvētos metodes kā .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

sobes.tech AI

Atbilde no AI

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