我希望能够将数组名称传递给一个求和所有数组值的函数。但是,我无法像使用对象那样使用括号表示法。
更新:基于下面的评论,我现在意识到我可以简单地传递数组而不是将其名称作为字符串传递。这是一个工作示例:
function sum(array) {
const reducer = (accumulator, currentValue) => accumulator + currentValue;
var x = array.reduce(reducer, 0);
return x;
}
const arrayA = [1, 2, 3, 4];
const arrayB = [1, 2];
var x = sum(arrayA);
var y = sum(arrayB);
console.log('= ' + x);
console.log('= ' + y);
以下是我原始问题中的示例。
这是不起作用的代码,显示了我想使用的语法:
function sum(array) {
const reducer = (accumulator, currentValue) => accumulator + currentValue;
var x = [array].reduce(reducer, 0); // bracket notation, but doesn't seem to work
return x;
}
const array = [1, 2, 3, 4];
var x = sum('array'); // should = 10
console.log('= ' + x);
这是reduce函数的有效版本,它没有将数组名称作为参数传递(因此,不适合我的需求)。
function sum() {
const reducer = (accumulator, currentValue) => accumulator + currentValue;
var x = array.reduce(reducer, 0);
return x;
}
const array = [1, 2, 3, 4];
var x = sum();
console.log('= ' + x);