Skip to content

JavaScript Obyekt Iteratsiyasi

JavaScript obyekt xususiyatlari bo'ylab aylanish (iteratsiya) uchun bir nechta zamonaviy metodlarni taqdim etadi.


Zamonaviy Iteratsiya Metodlari

Asosiy metodlar

  • Object.entries(object) — [kalit, qiymat] juftliklari massivini qaytaradi.
  • Object.keys(object) — kalitlar (nomlar) massivini qaytaradi.
  • Object.values(object) — qiymatlar massivini qaytaradi.
  • Object.groupBy(iterable, callback) — elementlarni guruhlash uchun ishlatiladi.

Object.entries()

Object.entries() metodi obyektning har bir xususiyati uchun [key, value] ko'rinishidagi massivlardan tashkil topgan katta massiv qaytaradi.

Misol

js
const person = {
  firstName: 'John',
  lastName: 'Doe',
  age: 50
}

let text = ''
for (let [x, y] of Object.entries(person)) {
  text += x + ': ' + y + '<br>'
}

Object.entries() yordamida obyektni Map-ga aylantirish ham juda oson:

js
const myMap = new Map(Object.entries(person))

Object.values()

Object.values() xuddi Object.entries() kabi ishlaydi, lekin faqat xususiyatlarning qiymatlarini qaytaradi.

Misol

js
const person = {
  firstName: 'John',
  lastName: 'Doe',
  age: 50
}

const myArray = Object.values(person)
// ["John", "Doe", 50]

Object.keys()

Object.keys() metodi obyektning barcha sanaladigan (enumerable) xususiyat nomlarini massiv sifatida qaytaradi.

Misol

js
const keys = Object.keys(person)
// ["firstName", "lastName", "age"]

for...in tsikli

Bu tsikl obyektning xususiyatlari bo'ylab aylanishning eng qadimgi va klassik usulidir.

Misol

js
for (let x in person) {
  text += person[x]
}

Object.groupBy() (ES2024+)

Object.groupBy() — bu JavaScript-ga yaqinda qo'shilgan juda kuchli metod bo'lib, u elementlarni berilgan kriteriy bo'yicha guruhlaydi.

Misol

js
const fruits = [
  { name: 'olma', quantity: 300 },
  { name: 'banan', quantity: 500 },
  { name: 'apelsin', quantity: 200 },
  { name: 'nok', quantity: 400 }
]

// Miqdori bo'yicha guruhlash
const result = Object.groupBy(fruits, ({ quantity }) => {
  return quantity > 300 ? "ko'p" : 'kam'
})