我正在尝试解决一个问题,我必须在函数内部使用.reduce()方法获取数组的总和,而不是返回总和,我需要调用回调并在那里传递总和。 / p>
我很确定我正在使用.reduce(),但我一直都没有定义'并且,对于我的生活,我无法弄清楚如何在函数内调用函数。
非常感谢任何帮助/解释!
问题:汇总数字数组中的所有整数。 而不是返回和调用cb并传递总和。
我的代码:
function sumArray(numbers, cb) {
//code here
numbers.reduce(function(sum, currentValue) {
return sum + currentValue;
}, 0);
cb([1, 2, 3, 4, 5], result);
}
function addTwo(num) {
const result = num + 2;
}
答案 0 :(得分:1)
我认为这是你的作业,所以我不想放弃太多,但这里有几个指针。
numbers.reduce(function(sum, currentValue) {
正在计算总和但不存储它。你想要var reduced = things.reduce(...)
。
同样cb
可能只会传递1个参数,即总和,因为您当前正在将数组作为第一个参数传递而result
(您尚未声明)第二个论点。
答案 1 :(得分:1)
以下是问题 1. reduce()函数需要将其输出返回到结果变量。您没有将输出返回到结果变量,也没有定义结果变量 2.如果addTwo()函数是回调函数,那么你应该传入一个变量。但是由于你没有指出cd回调的目的地,我猜你没有把它包含在代码示例中。这样做;
function sumArray(numbers, cb) {
var result=numbers.reduce(function(sum, currentValue) {
return sum + currentValue;
}, 0);
cb([1, 2, 3, 4, 5], result);
}
function addTwo(num) {
const result = num + 2;
}
答案 2 :(得分:1)
好吧,我猜你一定要尝试做那样的事情。
要访问内部回调,您必须返回回调。
function sumArray(numbers, cb) {
//code here
let result = numbers.reduce(function(sum, currentValue) {
return sum + currentValue;
}, 0);
return cb([1, 2, 3, 4, 5], result);
}
function sumTwo(arr, num) {
return Number(num + 2);
}
console.log(sumArray([1, 2, 3, 4, 5], sumTwo));
答案 3 :(得分:1)
问题是
而不是返回和调用cb并传递总和。
表示cb(sum)
,仅此而已。有了这个回调,你可以做其他事情。
以下是一个例子:
var numbers = [1, 2, 3, 4, 5];
function sumArray(numbers, cb) {
var sum = numbers.reduce(function(sum, currentValue) {
return sum + currentValue;
}, 0);
cb(sum);
}
function outputSum(sum) {
console.log("The sum is " + sum);
}
function addTwo(sum) {
console.log(sum + 2);
}
sumArray(numbers, outputSum);
sumArray(numbers, addTwo);