Область видимости фунции, возврат (?)

134
07 февраля 2021, 05:10

Пытаюсь в первой фунции(внешней) использовать(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));
Answer 1

Вы обращаетесь к аргументам другой функции, которую запускаете без аргументов. Как вариант запишите аргументы в переменную:

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"));

Answer 2
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

READ ALSO
Вывод в Input в модальном окне

Вывод в Input в модальном окне

мне надо сделать так чтобы данные из таблицы выводились в инпуты в модальном окне,я попытался сделать Как вот здесь , но они выводятся просто...

158
CSS селекторы JavaScript

CSS селекторы JavaScript

Как написать такое же на JavaScript?

166
Предупреждение Сannot Destroy Paint Divace that is being painting

Предупреждение Сannot Destroy Paint Divace that is being painting

Мне необходимо сделать анимацию перемещения точки QPoint по траектории графика синусоидыРисую я график в функции void QPaintEvent(QPaintEvent *event) Там же задаю...

179