JavaScript standard objektumok: hozzárendelés, értékek, hasOwnProperty és getOwnPropertyNames magyarázat

A JavaScript-ben az Objectadattípust kulcsértékpárok tárolására használják, és az Arrayadattípushoz hasonlóan sok hasznos módszert tartalmaz. Ez néhány hasznos módszer, amelyet az objektumokkal végzett munka során használ.

Objektum hozzárendelési módszer

A Object.assign()módszert használják

  1. adjon hozzá tulajdonságokat és értékeket egy meglévő objektumhoz
  2. - készítsen új példányt egy meglévő objektumból, vagy
  3. egyesítsen több létező objektumot egyetlen objektummá.

A Object.assign()módszerhez targetObjectparaméterre van szükség , és korlátlan számú paramétert fogadhat el sourceObjectstovábbi paraméterként.

Fontos megjegyezni, hogy a targetObjectparaméter mindig módosulni fog. Ha ez a paraméter egy meglévő objektumra mutat, akkor az objektum egyszerre lesz módosítva és másolva.

Ha egy objektum másolatát szeretné létrehozni az eredeti objektum módosítása nélkül, akkor egy üres objektumot adhat át {}első ( targetObject) paraméterként, a másolandó objektumot pedig második ( sourceObject) paraméterként.

Ha a paraméterként átadott objektumok Object.assign()ugyanazokkal a tulajdonságokkal (vagy kulcsokkal) rendelkeznek, a paraméterlistában később megjelenő tulajdonságértékek felülírják azokat, amelyek korábban jöttek.

Szintaxis

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

Visszatérési érték

Object.assign()visszaadja a targetObject.

Példák

Módosítás és másolás 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 }

Másolás targetObjectmódosítás nélkül:

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 }

Objektumok azonos tulajdonságokkal :

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 }

Objektumérték-módszer

A Object.values()metódus egy objektumot vesz paraméterként, és értékeinek tömbjét adja vissza. Ez hasznossá teszi láncolás közös Arraymódszerek, mint .map(), .forEach()és .reduce().

Szintaxis

Object.values(targetObject);

Visszatérési érték

Az átadott objektum ( targetObject) értékeinek tömbje .

Példák

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

Ha az átadott objektumnak számai vannak kulcsként, akkor Object.value()az értékeket a kulcsok numerikus sorrendjének megfelelően adja vissza:

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

Ha egy objektumon kívül másnak adják át Object.values(), akkor azt egy objektummá kényszerítik, mielőtt tömbként visszaküldenék:

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

Az objektum hasOwnProperty metódus

A Object.hasOwnProperty()módszer logikai értéket ad vissza, jelezve, hogy az objektum rendelkezik-e a megadott tulajdonsággal.

Ez egy kényelmes módszer annak ellenőrzésére, hogy az objektum rendelkezik-e a megadott tulajdonsággal vagy sem, mivel ennek megfelelően adja vissza az igaz / hamis értéket.

Szintaxis

Object.hasOwnProperty(prop)

Visszatérési érték

true // or false

Példák

Annak Object.hasOwnProperty()tesztelése, hogy létezik-e tulajdonság egy adott objektumon vagy sem:

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

Object getOwnPropertyNames módszer

A Object.getOwnPropertyNames()módszer az objektumot paraméterként veszi fel, és az összes tulajdonságát visszaadja és tömbbe adja.

Szintaxis

Object.getOwnPropertyNames(obj)

Visszatérési érték

Az átadott objektum tulajdonságainak tömbje.

Példák

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

Ha egy objektumon kívül másnak adják át Object.getOwnPropertyNames(), akkor azt egy objektummá kényszerítik, mielőtt tömbként visszaküldenék:

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

Promise.prototype.the

A Promise.prototype.thenfüggvény két argumentumot fogad el, és ígéretet ad vissza.

Az első argumentum egy kötelező függvény, amely elfogad egy argumentumot. Az ígéret sikeres teljesítése kiváltja ezt a funkciót.

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