«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript
site.komp36.ru Создание сайтов. Твой сайт фотографа Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.
site.komp36.ru Продающий лендинг «Установка и продажа окон» Установка и продажа окон, установка дверей, перегородок. Одностраничный продающий сайт. Заявки прямо с сайта
site.komp36.ru Универсальный лендинг. Любая тема сайта - 4900 руб. Лендинг адаптируется под любую тему: ремонт, отделка, продажа окон, дверей, лестниц, мебели и многое другое
site.komp36.ru Создание сайтов. Сайт сервисного центра. Сайт компании. Новости и отзывы. Несколько прайс-листов – под каждый отдельная страница. Возможность размещения статей


Игра «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих



Копирование массивов в JavaScript - Существует несколько способов.

1-ый способ копирования массивов: написать функцию, используя циклы (см. пример здесь, так как массивы - это частный случай объектов).

2-ой способ копирования массивов - метод slice.

3-ий момент: если присвоить массив какой-либо переменной, то это НЕ будет являться копированием. В переменную будет передана ссылка на исходный массив, но не сам массив: подробнее об этом читайте здесь.



Оператор spread - Копирование массивов

Оператор разворота spread работает, начиная со стандарта JavaScript ES6 и используется для копирования массивов.

Синтаксис оператора spread - три точки.

Оператор spread - Примеры
Пример 1.1

const letters = ['a', 'b', 'c'],
      lettersNew = [...letters];

lettersNew[0] = 'X';

console.log(lettersNew);
console.log(letters);

Результат


[ 'X', 'b', 'c' ]
[ 'a', 'b', 'c' ]

Оператор spread - три точки.

1. Копирование массива letters в lettersNew.

2. Изменение значения одного из элементов массива lettersNew.

3. Исходный массив letters - остается прежним.

Пример 1.2

const letters = ['a', 'b', 'c'],
      lettersEnd = ['x', 'y', 'z'],  
      lettersAllPlus = [...letters, ...lettersEnd, 'Q', 'W', 'E'];

Результат


[
  'a', 'b', 'c',
  'x', 'y', 'z',
  'Q', 'W', 'E'
]

В результате в один массив были скопированы два других массива + есть возможность добавления дополнительных элементов.

Оператор spread - На практике

Оператор spread на практике часто используется для передачи массива в функцию.

Как это выглядит? Рассмотрим пример.

Допустим, мы получаем данные в виде массива. Например, ФИО, адрес и возраст. И есть функция с тремя параметрами, которая обрабатывает эти данные определенным образом. Рассмотрим эту ситуацию в простом исполнении. Здесь важно уловить суть.

Пример 2.1

function log(a, b, c){
    console.log(a);
    console.log(b);
    console.log(c);
}

const number = ['Ivanov V.M.', 'Koroleva 7 121', 1980];

log(...number);

Результат


Ivanov V.M.
Koroleva 7 121
1980

Оператор spread раскладывает массив на отдельные элементы.

Оператор spread - Копирование объекта

В стандарте JavaScript ES8 оператор spread работает и для объектов.

Пример 3.1

const obj = {
    k: 1,
    s: 2
};

const newObj = {...obj};

console.log(newObj);
newObj.k = 111;

console.log(newObj);
console.log(obj);

Результат


{ k: 1, s: 2 }

{ k: 111, s: 2 }
{ k: 1, s: 2 } // Исходный объект

Оператор spread - в результате копирования мы имеем два независимых объекта.

Оператор spread делает поверхностную - НЕ глубокую копию объекта/массива.

То есть при копировании объекта или массива вложенные конструкции имеют ссылочный тип данных.

Читайте также...

site.komp36.ruТвой сайт фотографа. Создание сайтов Что есть на сайте? Несколько фото галерей: свадебная, постановочная съемка, love story, детские фото. Договор на фотосъемку, прайс-лист.
site.komp36.ru Акция Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов
site.komp36.ru Акция Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта

Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Рунет - Часть 2
Копирование массивов - Оператор spread
1212
Условия if else - Конструкция switch case - Тернарный оператор
650
Циклы while и for - Операторы break и continue
893
Практика часть 2 – Циклы и Условия
4398
Объявление функций – Стрелочные функции ES6
1060
Методы и свойства строк и чисел - Метод substr - Индекс строки
518
Практика часть 3 - Используем функции
1421
Что такое callback-функция - Аргумент другой функции
2147
Свойства и методы объектов - Деструктуризация объектов ES6
2806
Методы массивов - Перебор элементов массива - Псевдомассивы
2113
Передача данных по ссылке и по значению – Клонирование объекта
487
Метод assign() – Копирование исходных объектов в целевой объект
522
Прототипное Программирование - Прототип и Экземпляр Объекта
488
Свойство proto - Методы Object.create и Object.setPrototypeOf
700
Практика часть 4 - Используем функции как методы объекта
10914
Тематические публикации
site.komp36.ru Как начать свое дело? Свой сайт «Укладка плитки» 9 000 руб. Лендинг адаптируется под любой вид отделочных работ, продажу товаров или услуг. Сайт поможет найти новых клиентов
site.komp36.ru Продающий лендинг «Установка и продажа окон» 9 000 руб. Одностраничный продающий сайт. Установка и продажа окон, установка дверей, перегородок. Заявки прямо с сайта
Популярные заметки
Последние заметки