В настоящее время я изучаю, как Array.prototype.push () работает с веб-документами MDN.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push
На этой странице обобщенный синтаксис выражается как
arr.push(element1[, ...[, elementN]])
, но каково назначение второго параметра (elementN)?
На этой странице показан пример, объединяющий различные виды спорта, например
var sports = ['soccer', 'baseball'];
var total = sports.push('football', 'swimming');
console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
console.log(total); // 4
, но что будет первым и вторым параметром, если вы захотите сделать следующее?
var teamSports = ['soccer', 'baseball', 'hockey', 'American football'];
var individualSports = ['weight lifting', 'track & field', 'boxing', 'wrestling']
// prepare an empty array
var allSports = [];
// add all of the team sports
allSports.push(???????)
// add all of the individual sports
allSports.push(????????)
// all the sports added to the array
console.log(allSports); // ['soccer', 'baseball', 'hockey', 'American football', 'weight lifting', 'track & field', 'boxing', 'wrestling']
[ДОПОЛНИТЕЛЬНЫЙ ФОН НИЖЕ (ПОСЛЕ ПОЛУЧЕНИЯ НЕКОТОРЫХ ОТВЕТОВ И КОММЕНТАРИЙ)]
Благодарю тех, кто ответил или прокомментировал мой пост. Основная цель моего поста состояла в том, чтобы выяснить значение части [, elementN]], а не «копировать элементы массива в другой массив».
Мой пример
allSports.push(???????)
действительно включает «элементы массива в другой массив», но я просто пытался выяснить общее правило параметров push, получив больше примеров.
На странице веб-документов MDN, ссылку на которую я указал, показанные примеры имели всего два параметра, например
var sports = ['soccer', 'baseball'];
var total = sports.push('football', 'swimming');
console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
console.log(total); // 4
или
var vegetables = ['parsnip', 'potato'];
var moreVegs = ['celery', 'beetroot'];
// Merge the second array into the first one
// Equivalent to vegetables.push('celery', 'beetroot');
Array.prototype.push.apply(vegetables, moreVegs);
console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']
Поскольку оба этих примера имели два параметра, я просто предположил, что push получает два параметра (что оказалось неверным предположением в ретроспективе), и именно поэтому мой вопрос был в основном о том, «как» второй параметр '[, elementN] работает ".
Если бы было еще несколько примеров, таких как
var sports = ['soccer', 'baseball'];
var total = sports.push('football', 'swimming');
console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
console.log(total); // 4
total = sports.push('weight lifting', 'track & field', 'boxing', 'wrestling')
console.log(sports); // ['soccer', 'baseball', 'football', 'swimming', 'weight lifting', 'track & field', 'boxing', 'wrestling']
console.log(total); // 8
, я бы не предположил, что push требует двух параметров, а [, elementN] является его вторым параметром, и я бы понял, что push может принимать столько параметров, сколько вы хотите.
Еще одно замечание: я не знал, что
...
также был частью кода, который называется оператором распространения. Я просто подумал, что вы, ребята, «опускаете» некоторые вещи этим выражением. Это также привело к моей неправильной интерпретации.