JavaScript standardni objekti: Objašnjene metode dodjeljivanja, vrijednosti, hasOwnProperty i getOwnPropertyNames

U JavaScriptu se Objectvrsta podataka koristi za spremanje parova vrijednosti ključeva, a poput Arrayvrste podataka sadrži mnoge korisne metode. Ovo su neke korisne metode koje ćete koristiti tijekom rada s objektima.

Metoda dodjele predmeta

Object.assign()Metoda se koristi za

  1. dodati svojstva i vrijednosti postojećem objektu
  2. napraviti novu kopiju postojećeg objekta ili
  3. kombinirati više postojećih objekata u jedan objekt.

Object.assign()Metoda zahtijeva jedan targetObjectkao parametar, a može prihvatiti neograničen broj sourceObjectskao dodatnih parametara.

Ovdje je važno napomenuti da će targetObjectparametar uvijek biti modificiran. Ako taj parametar upućuje na postojeći objekt, tada će se taj objekt i izmijeniti i kopirati.

Ako želite stvoriti kopiju objekta bez izmjene tog izvornog objekta, možete proslijediti prazan objekt {}kao prvi ( targetObject) parametar, a objekt koji želite kopirati kao drugi ( sourceObject) parametar.

Ako objekti prosljeđeni kao parametri Object.assign()dijele ista svojstva (ili ključeve), vrijednosti svojstava koje dolaze kasnije na popisu parametara prepisat će one koje su došle ranije.

Sintaksa

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

Povratna vrijednost

Object.assign()vraća targetObject.

Primjeri

Izmjena i kopiranje 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 }

Kopiranje targetObjectbez izmjena:

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 }

Objekti s istim svojstvima :

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 }

Metoda vrijednosti predmeta

Object.values()Metoda uzima predmet kao parametar i vraća niz njezinih vrijednosti. To ga čini korisnim za povezivanje sa zajedničkim Arraymetodama kao što su .map(), .forEach()i .reduce().

Sintaksa

Object.values(targetObject);

Povratna vrijednost

Niz targetObjectvrijednosti ( ) prosljeđenog objekta .

Primjeri

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

Ako objekt koji prosljeđujete ima brojeve kao ključeve, tada Object.value()će vratiti vrijednosti prema numeričkom redoslijedu ključeva:

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

Ako se proslijedi nešto drugo osim objekta Object.values(), ono će biti prisiljeno u objekt prije nego što se vrati kao niz:

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

Objekt hasOwnProperty Method

The Object.hasOwnProperty()metoda vraća Boolleov pokazuje ako je objekt posjeduje određenu imovinu.

Ovo je prikladna metoda za provjeru ima li objekt navedeno svojstvo ili ne, jer u skladu s tim vraća true / false.

Sintaksa

Object.hasOwnProperty(prop)

Povratna vrijednost

true // or false

Primjeri

Pomoću Object.hasOwnProperty()testiranja postoji li svojstvo u danom objektu ili ne:

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

Metoda objekta getOwnPropertyNames

Object.getOwnPropertyNames()Metoda uzima jedan objekt kao parametar i vraća te niz svih njegovih svojstava.

Sintaksa

Object.getOwnPropertyNames(obj)

Povratna vrijednost

Niz nizova svojstava prosljeđenog objekta.

Primjeri

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

Ako se proslijedi nešto drugo osim objekta Object.getOwnPropertyNames(), ono će biti prisiljeno u objekt prije nego što se vrati kao niz:

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

Obećaj.prototip.onda

Promise.prototype.thenFunkcija prihvaća dva argumenta i vraća obećanje.

Prvi argument je obavezna funkcija koja prihvaća jedan argument. Uspješno ispunjenje obećanja pokrenut će ovu funkciju.

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