Javascript без объектов — это как боевик без трюков, он может существовать, но совершенно бессмысленен. Объекты — это как душа Javascript. По мере роста сложности нам нужна структура данных, такая как объекты (помните, массивы тоже имеют тип объектов, на самом деле почти все в javascript является объектом).

Итак, здесь мы рассмотрим различные способы манипулирования объектами в Javascript, но, как мы всегда делаем, мы разделим их на категории для лучшего понимания.

Как мы знаем, данные в объектах хранятся в виде свойств в парах key: Value, доступ к которым можно получить с помощью ссылок на ключи с именем объекта. Объекты могут быть вложены до нескольких уровней, что позволяет хранить сложные данные.

Вот некоторые из аспектов объектов, которые мы здесь рассмотрим:

Создание объектов
Чтение свойств в объекте
Копирование объектов
Удаление свойств
Проверка наличия свойств
Сравнение объектов
Наложение ограничений на объект
Преобразование данных в Object (в массивы и из них)

Создание объекта

Объект.создать():

Хотя существуют различные способы создания объекта (как показано ниже), мы также можем использовать Object.create() для того же самого.

Чтение свойств в объекте

Доступ к данным внутри объекта можно получить различными способами, в том числе через запись через точку, скобки и через ссылку с переменной.

for..в цикле:

Если мы хотим получить доступ ко всем свойствам объекта, мы можем использовать цикл for…in.

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

Объект.назначить():

Он копирует все свойства одного объекта в другой. Он создает «мелкую копию», так как оба объекта указывают на одну и ту же память, поэтому изменения в одном отражаются в другом.

Глубокое копирование с использованием JSON:

Если мы хотим скопировать объекты и сохранить их полное различие, мы можем использовать методы JSON следующим образом, выполняя «глубокое копирование».

… Оператор спреда:

Один из самых привлекательных способов копирования свойств объекта, он также выполняет глубокое копирование. Кроме того, это также полезно для обновления частичных значений свойств в объекте перед копированием.

Удаление свойств

Удалить:

полностью удаляет свойство, но занимаемая им память не освобождается от объекта.

Проверка наличия свойств

.hasOwnProperty():

Он проверяет, содержит ли объект свойство, указанное в аргументе этого метода. Возвращает true, если он присутствует.

в операторе:

Он также выполняет ту же функцию, что и выше, и возвращает true, если свойство присутствует.

Сравнение объектов

Объект.is():

Может использоваться для сравнения, одинаковы ли 2 объекта или нет (неглубокие копии).

Наложение ограничений на объект

Объект.defineProperty():

Этот метод можно использовать для определения нового свойства или для изменения признаков (дескриптора) существующего свойства. Здесь дескрипторы могут быть значениями, доступными для записи, перечисляемыми, настраиваемыми и т. д.

Объект.заморозить():

Этот метод буквально замораживает все свойства объекта, запрещая любые добавления/удаления/изменения. Object.isFrozen() используется для проверки того, заморожен ли объект или нет.

Объект.печать():

Этот метод предотвращает любое добавление/удаление свойств объекта, но позволяет редактировать существующие. Object.isSealed() используется для проверки того, запечатан ли объект.

Объект.preventExtensions():

Этот метод предотвращает любое добавление свойств к объекту, но позволяет удалять, а также редактировать существующие. Object.isExtensible() используется для проверки того, является ли объект расширяемым или нет.

Преобразование данных в объект

Преобразование в массив

Объект.Записи():

Преобразует пары ключ:значение в массивы и делает их частью одного большого массива.

Объект.значения():

Дает массив, содержащий все значения в объекте.

Объект.ключи():

Дает массив, содержащий все ключи в объекте. (при условии, что свойство перечислимо)

Object.getOwnPropertyNames():

Дает массив, содержащий все имена ключей/свойств в объекте, но, в отличие от предыдущего метода, он также включает те, для которых перечисляемый параметр имеет значение false.

Преобразование из массива

Объект.fromEntries():

Если у нас есть данные в массивах, которые попарно эквивалентны парам ключ:значение объекта, мы можем преобразовать их в объект с помощью этого метода.

Теперь вы должны чувствовать себя уверенно всякий раз, когда вы снова сталкиваетесь с объектами (конечно, в течение короткого времени), поскольку в вашем арсенале есть различные инструменты, которые вы можете использовать для манипулирования ими. Если вы знаете, как обращаться с объектами, вы уже выиграли полбитвы Javascript.

Обратитесь к следующему репозиторию Github за всем приведенным выше кодом.

https://github.com/Gp-singh-git/object-manipulation-Javascript-tutorial

Удачного кодирования!