--- title: Object.entries() slug: Web/JavaScript/Reference/Global_Objects/Object/entries tags: - JavaScript - Metot - Referans - nesne translation_of: Web/JavaScript/Reference/Global_Objects/Object/entries ---
The Object.entries()
metodu, verilen bir nesnenin sıralanabilir [anahtar, değer]
çiftlerini {{jsxref("Statements/for...in", "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.
Object.entries(obj)
obj
[key, value]
dönülecek olan nesne.Verilen nesnenin sıralanabilir özellik çiftlerini [key, value]
içeren dizi
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.
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" });
Object
'in bir Map
'e dönüştürülmesi{{jsxref("Map", "new Map()")}} yapıcısı, entries
üzerinde ilerlenebilir nesnesini ister. Object.entries
ile, {{jsxref("Object")}}'ten {{jsxref("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 }
Object
'in üzerinde ilerlemekArray 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"
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 ({{jsxref("Object.keys")}} sayfasındaki gibi)
Specification | Status | Comment |
---|---|---|
{{SpecName('ESDraft', '#sec-object.entries', 'Object.entries')}} | {{Spec2('ESDraft')}} | İlk tanım. |
{{SpecName('ES8', '#sec-object.entries', 'Object.entries')}} | {{Spec2('ES8')}} |
{{Compat("javascript.builtins.Object.entries")}}