← Kembali ke kursus
Pelajaran kursus · JavaScript
Pelajaran 18

Object method: keys, values, entries

Konversi objek↔array, assign, freeze, hasOwn.

Pahami konsepnya

Object.keys(obj) menghasilkan array nama properti; Object.values(obj) array nilai; Object.entries(obj) array pasangan [kunci, nilai]. Ketiganya adalah jalan antara objek dan array method — keys untuk iterasi, entries untuk map/filter/reduce pada objek.

Object.assign(target, ...sources) menggabung properti dari beberapa objek ke target. Spread { ...a, ...b } adalah versi modern yang tidak mengubah asli. Object.freeze(obj) membekukan — menambah/mengubah properti setelahnya diabaikan (strict mode: error).

Object.hasOwn(obj, "kunci") (ES2022) menggantikan hasOwnProperty — memeriksa apakah properti ADA di objek itu sendiri, bukan di prototype chain.

Coba contoh kode

const stok = { kopi: 12, teh: 8, susu: 5 };

console.log(Object.keys(stok));
console.log(Object.values(stok));
console.log(Object.entries(stok));

// entries + destructuring
for (const [produk, jumlah] of Object.entries(stok)) {
  console.log(`${produk}: ${jumlah}`);
}

// assign vs spread
const ekstra = { matcha: 3 };
const gabung1 = Object.assign({}, stok, ekstra);
const gabung2 = { ...stok, ...ekstra };
console.log(gabung2);

console.log(Object.hasOwn(stok, "kopi"));  // true

entries adalah jembatan ke array method: Object.entries(obj).filter(([k, v]) => v > 5) menyaring produk dengan stok di atas 5. Spread lebih ringkas dari assign untuk penggabungan.

Latihan singkat

Uji: Object.values({a:10,b:20,c:30}) → sum, harus `60`.