Cara mengubah array object menjadi object Javascript paling cepat memakai Object.fromEntries() setelah map(). Langkah yang sering terlewat adalah tiap item harus diubah dulu menjadi pasangan [key, value], karena fromEntries tidak menerima array object secara langsung.
Misalnya daftar user dari API perlu diakses lewat usersById["u2"] tanpa find() berulang. Pola ini umum untuk lookup, normalisasi state, dan cache frontend.
Bentuk Data Awal dan Target Object
Data awal biasanya seperti ini:
const users = [
{ id: "u1", nama: "Andi" },
{ id: "u2", nama: "Sinta" }
];
Targetnya object dengan key unik:
{
u1: { id: "u1", nama: "Andi" },
u2: { id: "u2", nama: "Sinta" }
}
- Gunakan properti unik seperti
idatauslugsebagai key. - Key object selalu string atau symbol, angka otomatis diubah menjadi string.
- Key duplikat tertimpa, jadi data terakhir yang menang bila tidak ditangani.
Langkah Mengubah dengan Object.fromEntries dan Reduce
1. Petakan tiap item menjadi pasangan [key, value] dengan map.
2. Ubah pasangan itu menjadi object dengan Object.fromEntries.
3. Pakai reduce bila perlu kontrol duplikat atau bentuk value custom.
const usersById = Object.fromEntries(
users.map((user) => [user.id, user])
);
// Alternatif reduce dengan proteksi duplikat
const usersById2 = users.reduce((acc, user) => {
if (!acc[user.id]) acc[user.id] = user;
return acc;
}, {});
Kode pertama cocok untuk kasus sederhana. Versi reduce menahan item pertama saat id ganda, bukan menimpanya.
Perbandingan Metode Konversi Array ke Object
| Metode | Cocok Untuk | Catatan |
|---|---|---|
| fromEntries | Konversi langsung | Kode paling ringkas |
| reduce | Duplikat dan value custom | Fleksibel, sedikit panjang |
| for…of | Validasi per item | Mudah dibaca pemula |
| Object.assign | Gabung banyak object | Butuh spread hasil map |
- Pakai
fromEntriesuntuk lookup cepat tanpa logika tambahan. - Pakai
reducebila value perlu dibuang sebagian atau duplikat perlu difilter. - Pakai
for...ofbila tiap item perlu validasi sebelum dimasukkan.
Hasil konversi berisi shallow copy reference. Mengubah properti di object hasil ikut mengubah object di array asli.
FAQ
Apa key terbaik untuk cara mengubah array object menjadi object Javascript?
Gunakan id atau slug yang unik dan stabil di semua item.
Bagaimana jika ada id duplikat saat konversi?
Gunakan reduce dengan pengecekan if(!acc[id]) atau simpan duplikat sebagai array.
Apakah hasil konversi masih terhubung ke array asli?
Ya, valuenya masih mereferensikan object yang sama kecuali disalin ulang.