This translation is incomplete. Please help translate this article from English.

The Object.entries() metodu, verilen bir nesnenin sıralanabilir [anahtar, değer] çiftlerini for...in döngüsünün sunacağı sırayla (for-in döngüsü, farklı olarak nesnenin prototip zincirindeki özelliklerini de sıralar) dizi olarak döner.

Sözdizimi

Object.entries(obj)

Parametreler

obj
Sıralanabilir özellik çiftleri [key, value] dönülecek olan nesne.

Dönüş değeri

Verilen nesnenin sıralanabilir özellik çiftlerini [key, value] içeren dizi

Tanım

Object.entries() elemanları object nesnesinin sıralanabilir özellik çiftlerine [key, value] karşılık gelen diziler olan bir dizi döner. Özelliklerin sırası, özellikler üzerinde döngü ile dönülmesi durumunda oluşacak sırayla aynıdır.

Örnekler

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

// dizi benzeri nesne
const obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

// anahtarları rastgele sıralı olan dizi benzeri nesne
const anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.entries(anObj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

// getFoo, sıralanabilir bir özellik değildir
const myObj = Object.create({}, { getFoo: { value() { return this.foo; } } });
myObj.foo = 'bar';
console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]

// nesne olmayan parametre nesneye dönüştürülür
console.log(Object.entries('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]

// ilkel tiplerin kendi özellikleri olmadığı için, boş dizi döner
console.log(Object.entries(100)); // [ ]

// anahtar-değer çiftlerinin üzerinden for-of döngüsü ile geçelim
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}

// Veya, Array ekstra metotlarını kullanarak geçelim
Object.entries(obj).forEach(([key, value]) => {
console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
});

Bir Object'in bir Map'e dönüştürülmesi

new Map() yapıcısı, entries üzerinde ilerlenebilir nesnesini ister. Object.entries ile, Object'ten Map'e kolayca dönüşüm yapabilirsiniz:

const obj = { foo: 'bar', baz: 42 }; 
const map = new Map(Object.entries(obj));
console.log(map); // Map { foo: "bar", baz: 42 }

Bir Object'in üzerinde ilerlemek

Array Destructuring kullanarak, nesnelerin üzerinde kolayca ilerleyebilirsiniz.

const obj = { foo: 'bar', baz: 42 };
Object.entries(obj).forEach(([key, value]) => console.log(`${key}: ${value}`)); // "foo: bar", "baz: 42"

Polyfill

Doğal olarak desteklemeyen eski ortamlara Object.entries desteği eklemek için, Object.entries'in gösterme amaçlı gerçeklemesini tc39/proposal-object-values-entries'de (IE desteğine ihtiyacınız yoksa), es-shims/Object.entries repertuarındaki polyfill ile, veya aşağıdaki gibi kullanıma hazır basit polyfill kullanabilirsiniz.

if (!Object.entries)   Object.entries = function( obj ){ var ownProps = Object.keys( obj ),   i = ownProps.length, resArray = new Array(i); // diziyi önden ayıralım     while (i--)   resArray[i] = [ownProps[i], obj[ownProps[i]]];     return resArray; };

Yukardaki polyfill kod parçası için IE < 9 desteğine ihtiyacınız varsa, aynı zamanda Object.keys polyfill desteğine de ihtiyaç duyacaksınız (Object.keys sayfasındaki gibi)

Şartnameler

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Object.entries' in that specification.
Draft İlk tanım.
ECMAScript 2017 (ECMA-262)
The definition of 'Object.entries' in that specification.
Standard  

Gezgin uyumluluğu

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 54Edge Full support 14Firefox Full support 47IE No support NoOpera Full support 41Safari Full support 10.1WebView Android Full support 54Chrome Android Full support 54Edge Mobile Full support YesFirefox Android Full support 47Opera Android Full support 41Safari iOS Full support 10.1Samsung Internet Android Full support 6.0nodejs Full support 7.0.0
Full support 7.0.0
Full support 6.5.0
Disabled
Disabled From version 6.5.0: this feature is behind the --harmony runtime flag.

Legend

Full support  
Full support
No support  
No support
User must explicitly enable this feature.
User must explicitly enable this feature.

Ayrıca bakınız

Document Tags and Contributors

Contributors to this page: emretapci
Last updated by: emretapci,