如何在Javascript中找到每个数字的总和乘以其在数组中的位置?

时间:2015-10-27 17:44:19

标签: javascript arrays

我可以对数组中的每个值求和,但我无法弄清楚如何得到每个数字的总和乘以它在数组中的位置。

3 个答案:

答案 0 :(得分:1)

创建一个存储索引和数组元素的产品的变量。然后将其添加到数组元素并将其存储为总和。

var myProd=1; 
var mySum=0;
for(var i = 0 ; i<myArray.length() ; i++) 
{
    myProd = (i+1)*myArray[i];
    mySum+=(myArray[i]+myProd);
}

答案 1 :(得分:1)

您可以对数组使用reduce方法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

&#13;
&#13;
var myArray = [1,2,3,4];

var result = myArray.reduce(function(prev, curr, index) {
  return prev + (curr * index);
}, 0);

console.log(result);
&#13;
&#13;
&#13;

实际上与(1*0 + 2*1 + 3*2 + 4*3)

相同

答案 2 :(得分:0)

定义一个函数来总结数组中的值:

function sum(array) { return array.reduce(function(a, b) { return a + b; }); }

现在创建一个每个值乘以其位置的数组,然后将sum应用于它:

sum(myArray.map(function(elt, idx) { return elt * idx; }))

在ES6中,您可以更紧凑地编写它:

function sum(array) { return array.reduce((a, b) => a + b); }

sum(myArray.map((elt, idx) => elt * idx));