我需要从内部函数fn获取值(arr,sum)。我试图将其推到外部函数的结果数组中,或尝试像这样分配它a = fn();,不行。我做错了什么以及如何在外部函数中获得此值?
function func(limit) {
let results = [];
let arr = [];
console.log(limit);
function fn() {
let arg = arguments;
let sum = 0;
for (let i = 0; i < arg.length; i++) {
sum += arg[i];
arr.push(arg[i]);
};
fn();
console.log(arr, sum);
results.push({args: arr, result: sum});
return sum;
};
fn();
console.log(results);
return fn;
};
const mSum = func(2);
console.log(mSum(3,4,5));
func按预期返回12,但是我还需要进一步处理结果数组,因此我尝试使用
result.push({args:arr,result:sum});
您是否使用console.log(arr,sum);您可以在那里看到它,但是如何将其放在外部函数func中呢?
结果它按下了键,但是值是空数组和0。
最佳答案
您可以返回对象,而不是单个值。
function func(limit) {
function fn() {
let arg = arguments;
let sum = 0;
for (let i = 0; i < arg.length; i++) {
sum += arg[i];
arr.push(arg[i]);
};
return { args: arr, result: sum };
}
let results = [];
let arr = [];
return fn;
};
const mSum = func(2);
console.log(mSum(3, 4, 5));
关于javascript - 如何从内部函数获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56561829/