Sobes.tech
Middle

/* Bir dizideki tüm sayısal değerlerin toplamını hesaplamak için bir fonksiyon yazmak gerekiyor. Geçerli sayısal değerler, rakamlarla başlayan dizeler de dahil olmak üzere, başlangıçta rakamlarla başlayan dizeler de dahil olmak üzere, dizideki herhangi bir veri tipi olabilir ve düz olmayan bir yapı olabilir. **Yerleşik yöntemler olan .flat, .flatMap kullanılamaz** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

sobes.tech yapay zeka

AI'dan gelen yanıt

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