javascript - typescript'te obje anahtarı dinamikse değeri nasıl alınır?


Bir nesne dizim var. Yapısı böyle.

animal = [{"cow":{"leg":4,"eye":2}},{"monkey":{"leg":2,"eye":2}}]

buradaki ilk anahtar inek ve maymun gibi dinamiktir

Yani sorum şu: İlk anahtar dinamikse key leg'e nasıl erişebilirim?

Cevap #1

Eğer dizideki her nesnenin yalnızca 1 özelliğe sahip olduğundan emin değilseniz (bu özellik hayvanın türü olur), şöyle bir şey yapabilirsiniz.

animals = [{"cow":{"leg":4,"eye":2}},{"monkey":{"leg":2,"eye":2}}];
    
for (let animal of animals) {
  let propName = Object.keys(animal)[0];
  let result = animal[propName];
  console.log(result); // <- Do what you want with it
}

Cevap #2

Bence en mantıklı olan, yeni eklenen Object.entries'i kullanabilirsiniz.

Böylece verileriniz için şunlara sahipsiniz:

const animal = ...
for (a of animal) {
    const [animalName, animalDesc] = Object.entries(a)[0]; // assumes there is only one
}

İlgili makaleler