Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2022, 19:28
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Функция должна сохранить массив передаваемых параметров
Как сделать чтобы функция возвращала массив передаваемых другой функцией параметров в одном массиве?
У меня на выходе получается:
[ [ 1, 2 ] ]
[ [ 3, 4 ] ]
undefined


Код:

function saveCalls(obj) {
  const callsHistory = (arg1, arg2) => new Array([arg1, arg2]);
  return callsHistory;
}

// example 1
function sum(firstNum, secondNum) {
  return firstNum + secondNum;
}

const sumWithMemory = saveCalls(sum);

console.log(sumWithMemory(1, 2)); // ===> 3
console.log(sumWithMemory(3, 4)); // ===> 7

console.log(sumWithMemory.callsHistory); // ===> [ [1, 2], [3, 4] ]

Последний раз редактировалось NovichokJS, 30.06.2022 в 19:35.
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2022, 19:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

NovichokJS,

function saveCalls(fun) {
  let callsHistory = [];
  const f =  (...arg) => {
  callsHistory.push(arg);
  return fun(...arg);
  };
  f.callsHistory = callsHistory;
  return f
}

// example 1
function sum(firstNum, secondNum) {
  return firstNum + secondNum;
}

const sumWithMemory = saveCalls(sum);

console.log(sumWithMemory(1, 2)); // ===> 3
console.log(sumWithMemory(3, 4)); // ===> 7

console.log(sumWithMemory.callsHistory); // ===> [ [1, 2], [3, 4] ]
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2022, 20:06
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

круто, я думал что без слова this тут никак
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2022, 20:11
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

просьба обяснить что значит выражение f.callsHistory = callsHistory;
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2022, 20:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от NovichokJS
просьба обяснить что значит выражение f.callsHistory = callsHistory;
свойство функции f callsHistory будет ссылкой на массив c таким же названием callsHistory.
для понимания ...
function saveCalls(fun) {
  let arr = [];
  const f =  (...arg) => {
  arr.push(arg);
  return fun(...arg);
  };
  f.callsHistory = arr;
  return f
}

// example 1
function sum(firstNum, secondNum) {
  return firstNum + secondNum;
}

const sumWithMemory = saveCalls(sum);

console.log(sumWithMemory(1, 2)); // ===> 3
console.log(sumWithMemory(3, 4)); // ===> 7

console.log(sumWithMemory.callsHistory); // ===> [ [1, 2], [3, 4] ]
Ответить с цитированием
  #6 (permalink)  
Старый 30.06.2022, 20:31
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

спасибо, понял. Не знал что там даже можно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать массив функций или функция с индексом sovsem-nub Общие вопросы Javascript 1 04.12.2015 14:15
Чекбокс если "чекед" должна сработать функция Lavrov jQuery 4 26.06.2013 16:04
Функция срабатывает два раза, а должна - один pevec1 Элементы интерфейса 1 03.03.2012 04:29
Сохранить элементы в массив FL@$H Элементы интерфейса 4 10.01.2011 10:39
функция должна возвращать объект без одного свойства blackzub Общие вопросы Javascript 4 14.12.2009 19:25