我可以对数组中的每个值求和,但我无法弄清楚如何得到每个数字的总和乘以它在数组中的位置。
答案 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
var myArray = [1,2,3,4];
var result = myArray.reduce(function(prev, curr, index) {
return prev + (curr * index);
}, 0);
console.log(result);
&#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));