Я пытаюсь написать функцию, которая будет извлекать и суммировать все целые числа, независимо от того, сколько уровней (я говорю многомерные массивы здесь) из заданного массива. Вот что у меня до сих пор:Извлечение и добавление номеров из массива
function addTheNumbers (someArray) {
var onlyNumbers = someArray.filter(function(a){ return typeof(a)=='number'; });
for (i = 0; i < onlyNumbers.length; i++) {
// idk
}
}
var sampleArray = ['word',['a','b','c'],12314,'longer phrase',5,[123,123,2],10,3874,32];
addTheNumbers(sampleArray);
У меня есть две проблемы:
1) Я чувствую, как фильтр у меня на месте будет только извлечь номера, которые стоят в одиночку в данный массив, а не ВСЕ числа во всех массивах ... не знаете, как это исправить.
2) Я знаю, что как только у меня будут извлечены все числа, они будут сохранены в объекте/массиве, и мне придется перебирать его каким-то образом, чтобы добавить их все вместе, но ... еще раз я понятия не имею, как действовать дальше.
JSFiddle, чтобы облегчить ситуацию.
Если элемент массива, применить addTheNumbers рекурсивно на нем. –
Ваша проблема может быть описана как две более мелкие проблемы: 1) сгладить массив, 2) суммировать элементы (если они являются числами). –
'typeof' работает без скобок. –