Rumah  >  Artikel  >  hujung hadapan web  >  Meratakan Objek Bersarang Dalam: Panduan Langkah demi Langkah

Meratakan Objek Bersarang Dalam: Panduan Langkah demi Langkah

王林
王林asal
2024-08-13 16:38:39841semak imbas

Flattening a Deeply Nested Object: A Step-by-Step Guide

Memahami Masalah
Selalunya, kami menghadapi struktur data yang kompleks dalam aplikasi JavaScript. Struktur ini boleh menjadi objek bersarang dalam, menjadikannya mencabar untuk memanipulasi atau memprosesnya secara langsung. Satu operasi biasa adalah untuk meratakan objek ini, mengubahnya menjadi struktur yang lebih ringkas di mana semua sifat berada pada tahap teratas.

Dalam blog ini, kami akan menyelidiki coretan kod JavaScript yang meratakan objek bersarang dalam dengan berkesan. Kami akan memecahkan kod baris demi baris, menerangkan logik dan fungsinya.

Pecahan Kod

let user = {
  name : 'Chiranjit',
  address : {
    personal : {
      city: 'Kolkata',
      state: 'West Bengal'
    },
    office : {
      city: 'Bengaluru',
      state: 'Karnataka',
      area: {
        landmark:'Waterside',
        post: 433101
      }
    }
  }
}
var finalObj = {} 

const flatObjFn = (obj, parent) => {
  for(let key in obj){
    if(typeof obj[key] === 'object'){
      flatObjFn(obj[key], parent+'_'+key)
    }else{
      finalObj[parent + '_' + key] = obj[key]
    }
  }
}

flatObjFn(user, 'user');
console.log(finalObj);

Penjelasan Baris demi Baris

  1. Membuat Objek Bersarang:
    • Kami bermula dengan mencipta objek bersarang dalam bernama pengguna. Ia mengandungi sifat seperti nama, alamat dan objek bersarang lagi di dalamnya alamat.
  2. Memulakan Objek Output:

    • Obj akhir objek kosong dicipta untuk menyimpan hasil yang diratakan.
  3. Mentakrifkan Fungsi Meratakan:

    • Fungsi bernama flatObjFn ditakrifkan, menerima dua parameter: a) obj: Objek yang hendak diratakan. b) induk: Rentetan untuk mengawalan nama sifat untuk kejelasan.
  4. Lelaran Melalui Sifat Objek:

    • A untuk...dalam gelung berulang pada setiap sifat objek input obj.
  5. Mengendalikan Objek Bersarang:

    • Jika nilai harta ialah objek, fungsi flatObjFn ialah secara rekursif memanggil objek itu. Parameter induk ialah digabungkan dengan nama harta semasa untuk mencipta awalan baharu untuk hartanah bersarang.
  6. Mengendalikan Nilai Primitif:

    • Jika nilai harta bukan objek (iaitu, nilai primitif seperti rentetan atau nombor), ia ditambahkan pada finalObj dengan kunci dibentuk dengan menggabungkan induk dan nama harta semasa.
  7. Memanggil Fungsi Meratakan:

    • FlatObjFn dipanggil dengan objek pengguna sebagai input dan 'pengguna' sebagai awalan induk awal.
  8. Melog Objek Diratakan:

    • Objek akhir yang diratakan dicetak ke konsol menggunakan console.log(finalObj).

Bagaimana Ia Berfungsi?
Fungsi flatObjFn secara rekursif melintasi objek, memecahkan struktur bersarang menjadi objek rata. Parameter induk menjejaki hierarki objek, membenarkan fungsi mencipta nama sifat yang bermakna dalam objek output.

Jom berhubung di Twitter atau LinkedIn

Atas ialah kandungan terperinci Meratakan Objek Bersarang Dalam: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn