Cara Rename Property Object Javascript Dinamis tanpa Merusak Data

Cara rename property object JavaScript dinamis yang aman adalah menyalin nilai ke key baru lalu menghapus key lama. Kuncinya memakai bracket notation, karena dot notation tidak bisa membaca nama key dari variabel. Pola dasarnya obj[newKey] = obj[oldKey]; delete obj[oldKey]; dan pola ini jalan sama di browser maupun Node.js.

Jawaban cepat rename key object dengan nama dinamis

Gunakan variabel untuk nama key lama dan baru, lalu akses object dengan obj[variabel].

let user = { nama_lama: "Andi" };
let oldKey = "nama_lama";
let newKey = "nama";

user[newKey] = user[oldKey];
delete user[oldKey];

console.log(user); // { nama: "Andi" }

Kode di atas tidak butuh API browser atau Node.js khusus. delete hanya menghapus property milik object tersebut, nilainya ikut pindah karena sudah disalin sebelumnya.

Langkah rename property object secara dinamis

Ikuti urutan ini agar data tidak hilang saat key lama dihapus:

1. Simpan nama key lama dan baru di variabel.
2. Cek key lama ada dengan in atau hasOwnProperty.
3. Salin nilai ke key baru.
4. Hapus key lama dengan delete.
5. Kembalikan object bila dipakai sebagai function util.

function renameKey(obj, oldKey, newKey) {
  if (!(oldKey in obj)) return obj;
  obj[newKey] = obj[oldKey];
  delete obj[oldKey];
  return obj;
}

Pengecekan pada langkah 2 penting. Tanpa itu, key lama yang salah ketik membuat property baru berisi undefined.

Pilihan metode rename untuk kondisi berbeda

Pilih metode berdasarkan apakah object boleh diubah langsung:

  • Mutasi langsung dengan assignment plus delete untuk object kecil dan lokal, misalnya object form sebelum dikirim.
  • Buat object baru dengan spread dan destructuring agar immutable, cocok untuk state React atau data yang dipakai di banyak tempat.
  • Rename banyak key lewat mapping object berisi pasangan lama: baru, cocok untuk membersihkan respons API.
  • Perhatikan referensi. Mutasi mengubah semua variabel yang menunjuk ke object yang sama, sedangkan spread membuat object baru.
const { nama_lama, ...sisa } = user;
const userBaru = { ...sisa, nama: nama_lama };

Metode | Fungsi | Catatan

Metode Fungsi Catatan
Bracket assignment Menyalin nilai ke key dinamis Mengubah object asli
delete Menghapus key lama Key bentrok bisa menimpa data
Spread plus rest Membuat object hasil rename Hanya shallow copy
Object.fromEntries Rename massal lewat mapping Cocok untuk banyak key

Jika key baru sudah ada, assignment menimpa nilainya. Cek dulu bila data lama tidak boleh hilang. Spread juga tidak meng-clone object bertingkat, jadi object di dalamnya tetap berbagi referensi.

FAQ

Apakah urutan key berubah setelah rename?

Ya, key baru umumnya pindah ke akhir urutan enumerasi string.

Bagaimana rename tanpa menghapus object asli?

Gunakan destructuring dan spread untuk membuat object baru berisi key pengganti.

Apa yang terjadi jika key baru sudah ada?

Nilai lama pada key baru tertimpa oleh nilai dari key lama.