Как найти сумму массива чисел - PullRequest
618 голосов
/ 05 августа 2009

Учитывая массив [1, 2, 3, 4], как я могу найти сумму его элементов? (В этом случае сумма будет 10.)

Я подумал, $.each может быть полезно, но я не уверен, как это реализовать.

Ответы [ 38 ]

0 голосов
/ 29 апреля 2018

Просто используйте эту функцию:

function sum(pArray)
{
  pArray = pArray.reduce(function (a, b) {
      return a + b;
  }, 0);

  return pArray;
}

function sum(pArray)
{
  pArray = pArray.reduce(function (a, b) {
      return a + b;
  }, 0);

  return pArray;
}

var arr = [1, 4, 5];

console.log(sum(arr));
0 голосов
/ 21 марта 2018

с параметром покоя ES6

let array = [1, 2, 3, 4]

function sum(...numbers) {
    let total = 0;
    for (const number of numbers) {
        total += number;
    }
    return total;
}

console.log(sum(...array));
0 голосов
/ 17 ноября 2017

Для действительно больших чисел цикл или сокращение может быть интенсивным процессом. Как насчет использования Gauss?

sum = (n * (n+1))/2;

От mathcentral .

0 голосов
/ 16 марта 2019

«Двойной» вопрос, заданный, как это сделать для двумерного массива, так что это простая адаптация для ответа на этот вопрос. (Разница составляет только шесть символов [2], 0, которые находят третий элемент в каждом подмассиве и передают начальное значение, равное нулю):

const twoDimensionalArray = [
  [10, 10, 1],
  [10, 10, 2],
  [10, 10, 3],
];
const sum = twoDimensionalArray.reduce( (partial_sum, a) => partial_sum + a[2], 0 ) ; 
console.log(sum); // 6
0 голосов
/ 22 июня 2018
    <!DOCTYPE html>
    <html>
    <body>

      <p>Click the button to join two arrays.</p>
      <button onclick="myFunction()">Try it</button>
      <p id="demo"></p>
    <script>
var hege = [1, 2,4,6,7,8,8];
var stale = [1, 2,4,5];
function myFunction() {
    console.log((hege.length > stale.length))    
    var children  = (hege.length > stale.length)? abc1() :abc2();       document.getElementById("demo").innerHTML = children;
}
function abc1(){
    console.log(hege,"Abc1")    
    var abcd=hege.map(function (num, idx) {
        console.log(hege.length , idx)
        return stale.length>idx?num + stale[idx]:num;
    })
    return abcd;
}

function abc2(){

    console.log(hege,"Abc2",stale)    
    var abcd=stale.map(function (num, idx) {
        console.log(hege.length , idx)
        return hege.length>idx?num + hege[idx]:num;
    })
    return abcd;
}
</script>

</body>
</html>
0 голосов
/ 13 апреля 2017

Использовать рекурсию

var sum = (arr) => arr.length === 1 ? arr[0] : arr.shift() + sum(arr);
sum([1,2,3,4]) // 10
0 голосов
/ 20 апреля 2019

Пример простого метода:

function add(array){
    var arraylength = array.length;
    var sum = 0;
    for(var timesToMultiply = 0; timesToMultiply<arraylength; timesToMultiply++){
        sum += array[timesToMultiply];
    }

    return sum;
}

console.log(add([1, 2, 3, 4]));
0 голосов
/ 20 февраля 2013

Использование map:

var sum = 0;
arr.map(function(item){
    sum += item;
});

// sum now contains the total.

Вы можете потенциально добавить метод в прототип Array.

Array.prototype.sum = function(){
    var sum = 0;
    this.map(function(item){
        sum += item;
    });
    return sum;
}

Тогда вы можете использовать его на любом массиве, например:

arr.sum();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...