Oggetti standard JavaScript: spiegazione dei metodi assign, values, hasOwnProperty e getOwnPropertyNames

In JavaScript, il Objecttipo di dati viene utilizzato per memorizzare le coppie chiave-valore e, come il Arraytipo di dati, contiene molti metodi utili. Questi sono alcuni metodi utili che utilizzerai mentre lavori con gli oggetti.

Metodo di assegnazione degli oggetti

Il Object.assign()metodo è utilizzato per

  1. aggiungere proprietà e valori a un oggetto esistente
  2. creare una nuova copia di un oggetto esistente, o
  3. combina più oggetti esistenti in un unico oggetto.

Il Object.assign()metodo ne richiede uno targetObjectcome parametro e può accettare un numero illimitato di sourceObjectsparametri aggiuntivi.

È importante notare che il targetObjectparametro verrà sempre modificato. Se quel parametro punta a un oggetto esistente, quell'oggetto verrà modificato e copiato.

Se desideri creare una copia di un oggetto senza modificare quell'oggetto originale, puoi passare un oggetto vuoto {}come primo targetObjectparametro ( ) e l'oggetto da copiare come secondo sourceObjectparametro ( ).

Se gli oggetti passati come parametri in Object.assign()condividono le stesse proprietà (o chiavi), i valori delle proprietà che vengono successivamente nell'elenco dei parametri sovrascriveranno quelli che sono arrivati ​​in precedenza.

Sintassi

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

Valore di ritorno

Object.assign()restituisce il targetObject.

Esempi

Modifica e copia 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 }

Copia targetObjectsenza modifiche:

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 }

Oggetti con le stesse proprietà :

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 }

Metodo dei valori degli oggetti

Il Object.values()metodo accetta un oggetto come parametro e restituisce un array dei suoi valori. Ciò lo rende utile per il concatenamento con comuni Arraymetodi come .map(), .forEach()e .reduce().

Sintassi

Object.values(targetObject);

Valore di ritorno

Un array dei targetObjectvalori ( ) dell'oggetto passato .

Esempi

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

Se l'oggetto che stai passando ha numeri come chiavi, Object.value()restituirà i valori in base all'ordine numerico delle chiavi:

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"]

Se viene passato qualcosa di diverso da un oggetto Object.values(), verrà forzato in un oggetto prima di essere restituito come array:

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

Metodo hasOwnProperty dell'oggetto

Il Object.hasOwnProperty()metodo restituisce un valore booleano che indica se l'oggetto possiede la proprietà specificata.

Questo è un metodo conveniente per verificare se un oggetto ha o meno la proprietà specificata poiché restituisce di conseguenza true / false.

Sintassi

Object.hasOwnProperty(prop)

Valore di ritorno

true // or false

Esempi

Usando Object.hasOwnProperty()per verificare se una proprietà esiste o meno in un dato oggetto:

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

Metodo getOwnPropertyNames dell'oggetto

Il Object.getOwnPropertyNames()metodo accetta un oggetto come parametro e restituisce un array di tutte le sue proprietà.

Sintassi

Object.getOwnPropertyNames(obj)

Valore di ritorno

Un array di stringhe delle proprietà dell'oggetto passato.

Esempi

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

Se viene passato qualcosa di diverso da un oggetto Object.getOwnPropertyNames(), verrà forzato in un oggetto prima di essere restituito come array:

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

Promise.prototype.then

Una Promise.prototype.thenfunzione accetta due argomenti e restituisce una promessa.

Il primo argomento è una funzione richiesta che accetta un argomento. Il corretto adempimento di una promessa attiverà questa funzione.

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