Пытаюсь в первой фунции(внешней) использовать(push в results, return) результаты из второй(внутренней). Нужно записть в results массив arr и сумму sum. Не получается - записывается пустой массив и 0, хотя в возврате оно есть, вроде печатается значение, но как его использовать?
function func(limit) {
let results = [];
let arr = [];
console log(limit);
function fn() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
arr.push(arguments[i]);
};
console.log(arr);
results.push({args: arr, result: sum});
return sum;
};
fn();
console.log(results);
return fn;
};
const mSum = func(2);
console.log(mSum(3, 4, 5));
Вы обращаетесь к аргументам другой функции, которую запускаете без аргументов. Как вариант запишите аргументы в переменную:
function func(limit) {
let results = [];
let arr = [];
let arg = arguments;
function fn() {
let sum = 0;
for (let i = 0; i < arg.length; i++) {
sum += arg[i];
arr.push(arg[i]);
};
results.push({args: arr, result: sum});
return sum;
};
return fn();
};
console.log(func("test1","test2","test3"));
function func(...limit) {
let results = [];
let arr = [];
console.log(limit);
function fn() {
let sum = 0;
for (let i = 0; i < limit.length; i++) {
sum += limit[i];
arr.push(limit[i]);
};
console.log(arr);
results.push({args: arr, result: sum});
return results;
};
console.log(results);
return fn;
};
var f = func(10, 11, 12);
f();
Если честно, не совсем понял суть вопроса. Непонятно, что вы подразумеваете под arguments
Продвижение своими сайтами как стратегия роста и независимости