Использование Map + Rest Operator (JavaScript) - PullRequest
2 голосов
/ 21 апреля 2019

Эта функция делает то, что я хотел, но не то, что ожидал.Я ожидал, что он создаст два массива, поскольку ... args создает массив переданных аргументов, а map () что-то делает с каждым значением массива, к которому он подключен, и сохраняет результаты в новом массиве.Может кто-нибудь сказать мне, почему эта функция не создает два массива?

let practiceFunc = (...args) => {
 let arr = args.map((e) => {
  return e + 1
 })
  
 return arr ;
} 

console.log(practiceFunc(1,2,3)) ;
document.write(practiceFunc(1,2,3)) ;

1 Ответ

0 голосов
/ 21 апреля 2019

Он создает два массива, но вы всегда используете только один - arr, массив, который возвращается из функции. args также используется, но так же, как массив, используемый в map - вы можете легко опустить его и использовать arguments (однако для этого требуется функция ES5, поскольку функции стрелок не имеют своих собственных arguments и вам придется извлечь значения, используя Object.values):

let practiceFunc = function() {
  let arr = Object.values(arguments).map((e) => {
    return e + 1
  });
  return arr;
}

console.log(practiceFunc(1, 2, 3));
document.write(practiceFunc(1, 2, 3));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...