Hapus Key dengan Aman Lewat Cara Menghapus Property Object tanpa Error Javascript

Cara menghapus property object tanpa error JavaScript adalah memastikan objek bukan null atau undefined, lalu memakai delete dengan guard atau membuat salinan baru lewat destructuring. Banyak error muncul bukan karena delete rusak, melainkan karena kode langsung menghapus key dari data API yang belum tentu ada.

Penyebab Hapus Property Object Memicu Error

TypeError muncul ketika objek induknya null atau undefined. Kode seperti delete user.alamat langsung gagal bila user belum dimuat dari API.

Kasus lain adalah logic error. Properti tidak hilang karena objek di-freeze, di-seal, atau properti diset non-configurable lewat Object.defineProperty.

  • Pastikan nilai memang object sebelum dihapus.
  • Pastikan key benar-benar ada dengan operator in.
  • Periksa status Object.isFrozen() atau Object.isSealed() untuk data konfigurasi.

Cara Menghapus Key Object dengan Aman

Langkah bernomor paling aman untuk mutasi langsung:

1. Validasi objek tidak null.
2. Validasi key tersedia.
3. Jalankan delete.

// Salah: crash bila user null
delete user.password;

// Benar
if (user && 'password' in user) {
  delete user.password;
}

Guard tersebut mencegah crash dan menghindari penghapusan sia-sia. Untuk state React, jangan mutasi langsung. Buat objek baru tanpa key lama:

const { password, ...safeUser } = user;
console.log(safeUser);

Pola rest destructuring ini menjaga state lama tetap utuh sehingga render ulang berjalan benar.

Perbandingan Metode Hapus Property Object

Metode Fungsi Catatan
delete Hapus key dengan mutasi Cocok untuk objek lokal biasa
Destructuring rest Buat salinan tanpa key Cocok untuk React state
Reflect.deleteProperty Hapus key dan kembalikan boolean Cocok untuk validasi hasil hapus
  • Pakai mutasi delete untuk objek sementara, misalnya membersihkan payload sebelum dikirim.
  • Pakai salinan baru untuk state, props, atau data yang dibagikan ke banyak komponen.
  • Validasi input API dulu karena field bisa hilang, berubah tipe, atau bernilai null.
  • Hindari delete saat iterasi objek yang sama. Salin daftar key dengan Object.keys() dahulu.

FAQ

Apakah delete mengembalikan error bila key tidak ada?

Tidak, delete mengembalikan true bila key tidak ada, kecuali objek induknya null atau undefined.

Mana lebih aman untuk state, delete atau destructuring?

Destructuring rest lebih aman karena membuat objek baru tanpa mengubah state lama.

Kenapa property frozen tidak bisa dihapus?

Objek frozen mengunci konfigurasi propertinya sehingga penghapusan ditolak dalam strict mode.