在JavaScript中对数组中的各个数字求和

时间:2016-01-25 04:45:20

标签: javascript arrays

我正在尝试将每个数组中的所有数字相加并打印出该数组的总和。我不确定如何完成此代码。

示例:

var myArray = [123, 456, 789]

我希望程序打印出6,15,24。

由于1 + 2 + 3 = 6,4 + 5 + 6 = 15和7 + 8 + 9 = 24。

如何在该数组中添加每个单独的数字?

2 个答案:

答案 0 :(得分:2)

您可以使用Array#mapArray#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;
  });
}