Middle
/* Es ist notwendig, eine Funktion zu schreiben, um die Summe aller numerischen Werte in einem Array zu berechnen. Gültige numerische Werte sind auch Strings, die mit Ziffern beginnen. In diesem Fall sollte diese Anfangssequenz von Ziffern als numerischer Wert verwendet werden. Das Array kann beliebige Datentypen enthalten und nicht flach sein. **Es dürfen keine eingebauten Methoden wie .flat, .flatMap verwendet werden** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));
sobes.tech KI
Antwort von 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`.