我正在尝试将每个数组中的所有数字相加并打印出该数组的总和。我不确定如何完成此代码。
示例:
var myArray = [123, 456, 789]
我希望程序打印出6,15,24。
由于1 + 2 + 3 = 6,4 + 5 + 6 = 15和7 + 8 + 9 = 24。
如何在该数组中添加每个单独的数字?
答案 0 :(得分:2)
您可以使用Array#map
和Array#reduce
。
使用ES2015 Arrow Function语法
myArray.map(el => el.toString().split('').reduce((sum, b) => sum + +b, 0));
var myArray = [123, 456, 789];
var resultArr = myArray.map(el => el.toString().split('').reduce((sum, b) => sum + +b, 0));
console.log(resultArr);
document.body.innerHTML = resultArr; // FOR DEMO ONLY

在ES5中:
myArray.map(function (el) {
return el.toString().split('').reduce(function (sum, b) {
return sum + +b
}, 0);
});
var myArray = [123, 456, 789];
var resultArr = myArray.map(function (el) {
return el.toString().split('').reduce(function (sum, b) {
return sum + +b
}, 0);
});
console.log(resultArr);
document.body.innerHTML = resultArr;

答案 1 :(得分:0)
你必须将每个数字分解为数字,你可以使用模数运算符。
例如,X mod 10将始终从X获取最右边的数字,并且为了删除X的最后一个数字,您必须进行整数除法,X div 10。
function parse(array) {
return array.map(function(item) {
var n = 0;
while (item > 0) {
n += item % 10;
item = Math.floor(item/10);
}
return n;
});
}