Objetos estándar de JavaScript: explicación de los métodos de asignación, valores, hasOwnProperty y getOwnPropertyNames

En JavaScript, el Objecttipo de datos se usa para almacenar pares clave-valor y, al igual que el Arraytipo de datos, contiene muchos métodos útiles. Estos son algunos métodos útiles que utilizará al trabajar con objetos.

Método de asignación de objetos

El Object.assign()método se utiliza para

  1. agregar propiedades y valores a un objeto existente
  2. hacer una nueva copia de un objeto existente, o
  3. combinar varios objetos existentes en un solo objeto.

El Object.assign()método requiere uno targetObjectcomo parámetro y puede aceptar un número ilimitado de sourceObjectsparámetros adicionales.

Es importante tener en cuenta aquí que el targetObjectparámetro siempre se modificará. Si ese parámetro apunta a un objeto existente, entonces ese objeto será modificado y copiado.

Si desea crear una copia de un objeto sin modificar ese objeto original, puede pasar un objeto vacío {}como primer targetObjectparámetro ( ) y el objeto a copiar como segundo sourceObjectparámetro ( ).

Si los objetos pasados ​​como parámetros Object.assign()comparten las mismas propiedades (o claves), los valores de propiedad que vengan más adelante en la lista de parámetros sobrescribirán los que vinieron antes.

Sintaxis

Object.assign(targetObject, ...sourceObject);

Valor devuelto

Object.assign()devuelve el targetObject.

Ejemplos

Modificar y copiar targetObject:

let obj = {name: 'Dave', age: 30}; let objCopy = Object.assign(obj, {coder: true}); console.log(obj); // { name: 'Dave', age: 30, coder: true } console.log(objCopy); // { name: 'Dave', age: 30, coder: true }

Copiar targetObjectsin modificación:

let obj = {name: 'Dave', age: 30}; let objCopy = Object.assign({}, obj, {coder: true}); console.log(obj); // { name: 'Dave', age: 30 } console.log(objCopy); // { name: 'Dave', age: 30, coder: true }

Objetos con las mismas propiedades :

let obj = {name: 'Dave', age: 30, favoriteColor: 'blue'}; let objCopy = Object.assign({}, obj, {coder: true, favoriteColor: 'red'}); console.log(obj); // { name: 'Dave', age: 30, favoriteColor: 'blue' } console.log(objCopy); // { name: 'Dave', age: 30, favoriteColor: 'red', coder: true }

Método de valores de objeto

El Object.values()método toma un objeto como parámetro y devuelve una matriz de sus valores. Esto lo hace útil para encadenar con comunes Arraymétodos como .map(), .forEach(), y .reduce().

Sintaxis

Object.values(targetObject);

Valor devuelto

Una matriz de los targetObjectvalores ( ) del objeto pasado .

Ejemplos

const obj = { firstName: 'Quincy', lastName: 'Larson' } const values = Object.values(obj); console.log(values); // ["Quincy", "Larson"]

Si el objeto que está pasando tiene números como claves, Object.value()devolverá los valores de acuerdo con el orden numérico de las claves:

const obj1 = { 0: 'first', 1: 'second', 2: 'third' }; const obj2 = { 100: 'apple', 12: 'banana', 29: 'pear' }; console.log(Object.values(obj1)); // ["first", "second", "third"] console.log(Object.values(obj2)); // ["banana", "pear", "apple"]

Si se pasa algo que no sea un objeto Object.values(), se convertirá en un objeto antes de devolverlo como una matriz:

const str = 'hello'; console.log(Object.values(str)); // ["h", "e", "l", "l", "o"]

Método hasOwnProperty del objeto

El Object.hasOwnProperty()método devuelve un booleano que indica si el objeto posee la propiedad especificada.

Este es un método conveniente para verificar si un objeto tiene la propiedad especificada o no, ya que devuelve verdadero / falso en consecuencia.

Sintaxis

Object.hasOwnProperty(prop)

Valor devuelto

true // or false

Ejemplos

Utilizando Object.hasOwnProperty()para probar si una propiedad existe o no en un objeto dado:

const course = { name: 'freeCodeCamp', feature: 'is awesome', } const student = { name: 'enthusiastic student', } course.hasOwnProperty('name'); // returns true course.hasOwnProperty('feature'); // returns true student.hasOwnProperty('name'); // returns true student.hasOwnProperty('feature'); // returns false

Objeto método getOwnPropertyNames

El Object.getOwnPropertyNames()método toma un objeto como parámetro y devuelve una matriz de todas sus propiedades.

Sintaxis

Object.getOwnPropertyNames(obj)

Valor devuelto

Matriz de cadenas de las propiedades del objeto pasado.

Ejemplos

const obj = { firstName: 'Quincy', lastName: 'Larson' } console.log(Object.getOwnPropertyNames(obj)); // ["firstName", "lastName"]

Si se pasa algo que no sea un objeto Object.getOwnPropertyNames(), se convertirá en un objeto antes de devolverlo como una matriz:

const arr = ['1', '2', '3']; console.log(Object.getOwnPropertyNames(arr)); // ["0", "1", "2", "length"]

Promise.prototype. then

Una Promise.prototype.thenfunción acepta dos argumentos y devuelve una Promesa.

El primer argumento es una función requerida que acepta un argumento. El cumplimiento exitoso de una Promesa activará esta función.

The second argument is an optional function that also accepts one argument of its own. A thrown Error or Rejection of a Promise will trigger this function.

 function onResolved (resolvedValue) { /* * access to resolved values of promise */ } function onRejected(rejectedReason) { /* * access to rejection reasons of promise */ } promiseReturningFunction(paramList) .then( // then function onResolved, [onRejected] );

Promise.prototype.then allows you to perform many asynchronous activities in sequence. You do this by attaching one then function to another separated by a dot operator.

 promiseReturningFunction(paramList) .then( // first then function function(arg1) { // ... return someValue; } ) ... .then( // nth then function function(arg2) { // ... return otherValue; } )

Map.prototype.entries

Returns a new Iterator object that contains the [key, value] pairs for each element in the Map object in insertion order.

Syntax

myMap.entries()

Example

const myMap = new Map(); myMap.set('foo',1); myMap.set('bar',2); myMap.set('baz',3); var iterator = myMap.entries(); console.log(iterator.next().value); // ['foo', 1] console.log(iterator.next().value); // ['bar', 2] console.log(iterator.next().value); // ['baz', 3]

More info on objects in JavaScript:

  • How to create objects in JavaScript
  • How to loop through objects in JavaScript

More info about booleans:

  • Booleans in JavaScript