如何计算一个数组的每个元素与JavaScript中以前的元素之和?

时间:2019-02-26 13:00:15

标签: javascript

例如,如果我有一个数组[1,2,3,4],我想计算1 + 2、1 + 2 + 3和1 + 2 + 3 + 4并返回一个新数组。我该怎么办?

let arr = [1, 2, 3, 4];

doSomething(arr);

output...

newArr = [1, 3, 6, 10];

6 个答案:

答案 0 :(得分:1)

您可以对数组进行切片以获取所需元素,并减小其值以获取总和。

方法:

var array = [1, 2, 3, 4],
    sums = array.map((_, i, a) => a.slice(0, i + 1).reduce((a, b) => a + b));
    
console.log(sums);

以总和结束的乐趣

var array = [1, 2, 3, 4],
    sums = array.map((a => b => a += b)(0));
    
console.log(sums);

答案 1 :(得分:1)

添加此功能。

function dosomething (arr) {
  var i;
  if(i === 1 || i === 0) return arr; 
  for(i = 1; i<arr.length; i++){
    arr[i] += arr[i-1];
  }
  return arr;
}

答案 2 :(得分:0)

您可以尝试使用array.reduce

ArrayList.set()

答案 3 :(得分:0)

一些优雅的方法:

function getArrSum(arr)
{
    if(!arr.length) return [];
    let tmp=[arr[0]];
    for(let i=1; i<arr.length; i++)
    {
        tmp.push(tmp[i-1]+arr[i]);
    }
    return tmp;
}
let arr=[1,2,3,4];
console.log(getArrSum(arr));

答案 4 :(得分:0)

 var a = [1,2,3,4];
 var b=[];

for(i=0;i<a.length;i++)
{   

  var sum = 0;

  for(j=0;j<=i+1;j++)
  {
    if(a[j] != null)
        sum=sum+a[j];
  }    
  b[i]=sum;
}

答案 5 :(得分:0)

我很想分享一个链接,该链接显示了什么是好问题。 https://stackoverflow.com/help/how-to-ask

关于数组的计算是:

function getArray(numbers)
{
    if(!numbers.length) return [];
    let array=[numbers[0]];
    for(let i=1; i < numbers.length; i++)
    {
        array.push(array[i-1]+numbers[i]);
    }
    return array;
}
let array=[1,2,3,4];
let procArray = [];
console.log(getArray(array));