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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support541447 No4110.1
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support5454 Yes474110.16.0

1. From version 6.5.0: this feature is behind the --harmony runtime flag.

Ayrıca bakınız

Document Tags and Contributors

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