7 полезных методов объектов JavaScript

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

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

Кроме того, объекты JavaScript обладают множеством полезных методов, позволяющим извлечь из них важную информацию. Далее расскажем о 7 ключевых методах, которые нужно знать каждому разработчику. 


1. Метод Object.values()

Метод Object.values() в JavaScript — позволяет получить все значения, заключенные в объекте.

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

Приведем пример кода, чтобы было понятнее:

const userData = {
name: "John",
age: 25,
isOnline: true
}
console.log(Object.values(userData)); //возвращает ["John", 25, true]

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


2. Метод Object.entries()

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

Вот пример кода:

const userData = {
name: "John",
age: 25,
isOnline: true
}
console.log(Object.entries(userData));
//возвращает: [["name", "John"], ["age", 25], ["isOnline", true]]

Примечание: метод Object.entries()возвращает массив только собственных перечисляемых пар свойств со строковыми ключами. Он не возвращает свойства из цепочки прототипов объекта.


3. Метод Object.keys()

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

Посмотрите пример кода ниже:

const person = {
name: "James",
age: 28,
available: false
}
console.log(Object.keys(person));
//возвращает: ["name", "age", "available"]

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

Например, поскольку объекты не принимают свойство length, можно применить метод Object.keys()для получения массива ключей, а затем использовать с ним свойство length.

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

Вот пример кода:

Object.keys(person).length; //возвращает 3

4. Метод Object.freeze()

Метод Object.freeze() позволяет заморозить объект, передаваемый ему в качестве аргумента. После этого нельзя будет обновить объект или добавить ему новые свойства.

Метод просто предотвращает мутацию данных в объектах. Посмотрите на пример кода ниже:

const person = {
  name: "Alex",
  age: 35,
  available: true
}

//Заморозка объекта
Object.freeze(person);

//Обновление и добавление новых свойств.
person.name = "John";
person.newProp = "Developer";

console.log(person);
//возвращает{name: "Alex", age: 35, available: true}

Несмотря на попытку обновить объект person и добавить ему новые свойства, он не изменился, потому что уже заморожен методом Object.freeze().


5. Метод Object.seal()

Метод Object.seal() предотвращает добавление новых свойств к объекту. Он похож на Object.freeze() с той лишь разницей, что позволяет обновлять и изменять свойства внутри объекта.

Посмотрите пример кода ниже:

const userData = {
  name: "Brad",
  age: 28,
  isOnline: false
}

//Использование метода 
Object.seal(userData);

//Обновление свойства.
userData.isOnline = true;

//Добавление свойства.
userData.active = false;

console.log(userData);
//возвращает {name: "Brad", age: 28, isOnline: true}

Как видите, удалось обновить свойство isOnline, чтобы оно стало true, а не false. Но после добавления к объекту нового свойства .active ничего не произошло, потому что метод Object.seal() не позволяет добавлять новые свойства.


6. Метод Object.create()

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

Рассмотрим простой пример кода, чтобы было понятнее:

const userData = {
  firstName: "Brad",
  lastName: "Traversy",
  age: 38,
  fullName(){
    return `${this.firstName} ${this.lastName}`;
  }
}

//Новый объект
let newObject = Object.create(userData);

//Обновление свойств нового объекта.
newObject.firstName = "John";
newObject.lastName = "Doe";

//Мы также можем использовать метод fullName() объекта userData в этом новом объекте.
newObject.fullName(); //возвращает John Doe

console.log(newObject);
//возвращает {firstName: "John", lastName: "Doe"}

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


7. Метод object.is()

Метод Object.is()— определяет, одинаковы ли два значения. Он возвращает true, если оба значения равны. В противном случае возвращается false.

Вот как выглядит синтаксис метода:

Object.is(val1, val2);

Как видите, метод принимает два аргумента (значения для сравнения).

Посмотрите пример кода ниже:

Object.is(50, 50);        //истинно
Object.is('foo', 'bar'); //ложно
Object.is(foo, foo); //истинно

Заключение

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

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

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Mehdi Aoussiad, The 7 Useful JavaScript Object Methods That You Should Know

Предыдущая статья16 полезных расширений для SwiftUI
Следующая статьяКак обнаружить выбросы в проекте по исследованию данных