数组中所有元素的总和 [英] Sum of all elements in an array
本文介绍了数组中所有元素的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是编程的初学者.我想做一个数组中所有元素的总和.我做了这个,但我看不出我的错误在哪里?
I am a beginner in programming. I want to do the sum of all elements in an array. I made this but I can't see where are my mistakes?
function ArrayAdder(_array) {
this.sum = 0;
this.array = _array || [];
}
ArrayAdder.prototype.computeTotal = function () {
this.sum = 0;
this.array.forEach(function (value) {
this.sum += value;
});
return this.sum;
};
var myArray = new ArrayAdder([1, 2, 3]);
console.log(myArray.computeTotal());
在 forEach
回调中的
推荐答案
this
引用全局的 window
对象.要设置回调的上下文,请使用 Array#forEach
第二个参数来传递上下文.
this
inside the forEach
callback refers to the global window
object. To set the context of the callback, use the Array#forEach
second argument to pass the context.
this.array.forEach(function (value) {
this.sum += value;
}, this); // <-- `this` is bound to the `forEach` callback.
function ArrayAdder(_array) {
this.sum = 0;
this.array = _array || [];
}
ArrayAdder.prototype.computeTotal = function () {
this.sum = 0;
this.array.forEach(function (value) {
this.sum += value;
}, this);
return this.sum;
};
var myArray = new ArrayAdder([1, 2, 3]);
console.log(myArray.computeTotal());
document.write(myArray.computeTotal()); // For Demo purpose
如果您正在寻找替代方法,则可以使用 Array#reduce
,此处与
If you're looking for an alternative, you can use Array#reduce
, here using with Arrow function
var sum = arr.reduce((x, y) => x + y);
// Note: If this doesn't work in your browser,
// check in the latest version of Chrome/Firefox
var arr = [1, 2, 3];
var sum = arr.reduce((x, y) => x + y);
document.write(sum);
这篇关于数组中所有元素的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文