javascript - 从数组中提取和添加数字

标签 javascript arrays function numbers

我正在尝试编写一个函数,该函数将提取并汇总所有整数,无论​​给定数组的深度有多少(我在这里说的是多维数组)。这是我到目前为止所得到的:

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让事情变得更容易。

最佳答案

试试这个。

var temp = [];
function addTheNumbers(someArray) {

	for (var i = 0; i < someArray.length; i++) {
			if(typeof someArray[i] == "number")
			temp.push(someArray[i]);
		else if(typeof someArray[i] == "object"){
			addTheNumbers(someArray[i]);
		}
	};
}


var sampleArray = ['word', ['a', 'b', 'c'], 12314, 'longer phrase', 5, [123, 123, 2], 10, 3874, 32];
addTheNumbers(sampleArray);

关于javascript - 从数组中提取和添加数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31133900/

相关文章:

php - 使用 : the MySQL or PHP md5 function? 什么更快/更好

javascript - 如何使用 onclick 值动态添加按钮

xcode - 从大小为 N 的数组中选择 K 个元素,使得子数组中的最小元素和最大元素之间的差异最小

c - 循环重复scanf和printf

c - C编程中的索引

javascript - 无法从 javascript 书中理解这些示例,好的部分

jquery - jquery中如何调用函数

javascript - 如何在焦点输入上显示隐藏 div

javascript - 在浏览器中使用 JavaScript Encoding API 转换 CP437

javascript - onclick() 重复函数