Оператор распространения
- представляет из себя троеточие ...
Объединение массива.
let planets1 = ["Mercury", "Venus", "Earth", "Mars"]
let planets2 = ["Jupiter", "Saturn", "Uranus", "Neptune"]
//объединение массивов
let planetsOfSolarSystem = [...planets1,...planets2]
console.log(planetsOfSolarSystem.join(' | '))
//Mercury | Venus | Earth | Mars | Jupiter | Saturn | Uranus | Neptune
Создание копии массива.
let planets1 = ["Mercury", "Venus", "Earth", "Mars"]
let [first] = [...planets1]
let [last] = [...planets1].reverse()
console.log(first, last)//Mercury //Mars
let [...copyPlanets1] = planets1
copyPlanets1[0]='Nibiru'
console.log(copyPlanets1.join(' copy '))
//Nibiru copy Venus copy Earth copy Mars
console.log(planets1.join(' original '))
//Mercury original Venus original Earth original Mars
- [...planets1] копия массива planets1
- let [first] = деструктивный метод присваивания
- [...planets1].reverse() перевернутая копия массива
- let [...copyPlanets1] копирование массива planets1
Оператор распространения при деструктивном присваивании может использоваться для получения оставшихся элементов массива.
let planets2 = ["Jupiter", "Saturn", "Uranus", "Neptune"]
let [first2, ...other] = planets2
console.log(first2)//Jupiter
console.log(other.join(' other '))
//Saturn other Uranus other Neptune
Получение функцией аргументов в массив-параметр
function x (...options){
let [one,,,four] = options
let [,two,fhree,] = options
console.log(one, four, options.length)//Jupiter Neptune 4
console.log(two,fhree)//Saturn Uranus
}
x("Jupiter", "Saturn", "Uranus", "Neptune")
Применение оператора распространения к объектам
let object1={
p1:'Morning',
p2:'Evening'
}
let day = 'day'
let object2={
...object1,
day
}
console.log(object2)
//Вывод: {p1: "Morning", p2: "Evening", day: "day"}
Объект object1 распространился в объект object2.