Middle
/* Il est nécessaire d'écrire une fonction pour calculer la somme de toutes les valeurs numériques dans un tableau. Les valeurs numériques valides sont également des chaînes, qui commencent par des chiffres. Dans ce cas, il faut utiliser cette séquence initiale de chiffres comme valeur numérique. Le tableau peut contenir tous types de données et ne pas être plat. **Il ne faut pas utiliser de méthodes intégrées comme .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));
sobes.tech IA
Réponse de l'IA
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`.