Apa objek bersarang di javascript?

Jadi apa yang kita maksud dengan struktur data? . cara menyusun data. Dalam ilmu komputer, ada banyak struktur data yang berbeda (seperti yang akan Anda lihat. ), karena cara paling efisien untuk menyimpan data tergantung pada bagaimana Anda ingin menggunakan data tersebut. Apakah Anda hanya perlu membaca data, atau apakah Anda perlu memperbaruinya?

Namun, untuk saat ini, kami akan membatasinya pada Objects dan Arrays. Kita telah melihat bagaimana menggunakan kedua struktur ini untuk mengatur data. Seperti yang akan kita lihat di unit ini, bahkan hanya dengan dua struktur data ini, kita bisa mendapatkan cukup jauh dalam hal menyimpan dan mengakses data yang rumit

Lalu, apa itu struktur data bersarang? . Mari kita mulai dengan contoh sederhana

Objek di dalam Objek

Di bawah ini adalah contoh sederhana membuat objek yang memiliki kunci dan nilai kunci itu adalah objek lain

let schools = {
    georgiaInstituteOfTechnology: {
        address: "North Ave NW, Atlanta, GA 30332",
        phoneNumber: "(404) 894-2000",
        dateEstablished: "October 13, 1885"
    }
};

Nah untuk mengakses objek di dalam objek, kita bisa menggunakan notasi titik seperti pada objek yang tidak bersarang

Sekarang kita memiliki variabel

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
_0, kita dapat menggunakannya untuk mengakses kunci di dalam objek itu

Faktanya, kita bahkan tidak membutuhkan variabel perantara

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
0. Kita cukup menggunakan operator titik pada pernyataan pertama seperti ini

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
_

Semua pernyataan di atas bernilai sama dengan

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
0 contoh

Array Dalam Objek

Sekarang mari kita lihat contoh objek dengan array sebagai nilainya

let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};

Dalam contoh ini kita sekarang memiliki beberapa kunci. Kunci

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
3 memiliki nilai string yang sederhana,
schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
4, tetapi kunci
schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
5 memiliki nilai yang lebih kompleks yaitu array

Sama seperti pada contoh objek di dalam objek, kita dapat mengakses elemen dalam array dengan menggunakan notasi titik, lalu mengakses array secara normal. Untuk mendapatkan elemen pertama dalam array, kodenya adalah sebagai berikut

Bagaimana Anda menambahkan hobi lain ke array

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
5 di dalam objek?

Objek Kompleks

Sekarang mari kita lihat contoh yang menggabungkan objek dan larik

Jadi Anda mungkin berpikir, apakah saya benar-benar akan bekerja dengan data seperti ini? . Sangat umum, ketika Anda menerima data dalam jumlah besar dari pihak ketiga, Anda akan diberikan dalam format yang menyertakan objek dan/atau array bersarang. Sangat penting bagi Anda untuk memahami cara mengakses data dalam struktur data bersarang ini. Jika Anda tidak dapat mencapai titik di mana Anda dapat dengan mudah memanipulasi struktur data bersarang, Anda akan mengalami kesulitan mengintegrasikan segala jenis data luar ke dalam aplikasi yang akan Anda bangun nanti. Salin dan tempel contoh sebelumnya ke dalam cuplikan atau buat contoh Anda sendiri untuk berlatih

Mengakses dan Menetapkan nilai dalam objek bersarang

Menggunakan notasi titik adalah cara yang bagus untuk mengakses nilai dalam objek bersarang. Namun, ketika secara dinamis menetapkan nilai dalam objek bersarang (ketika Anda tidak tahu persis apa nama kuncinya), Anda harus menggunakan notasi braket. Mari kita lihat contoh singkatnya. Pada contoh di bawah ini, kami ingin menulis fungsi yang menambahkan kunci ke objek bersarang

Ingat, bahwa ketika menambahkan kunci ke suatu objek, jika Anda TIDAK tahu persis apa nama kunci itu (artinya kunci itu akan dibuat secara dinamis), Anda HARUS menggunakan notasi braket

Saat Anda berinteraksi dengan struktur data bersarang, terkadang merangkum beberapa logika Anda ke dalam sebuah fungsi akan membantu. Ini terutama benar jika Anda perlu memanipulasi struktur data dengan cara yang sama beberapa kali. Di bawah ini adalah beberapa contoh penulisan fungsi yang berinteraksi dengan struktur data bersarang dengan cara yang berbeda. Kita akan mulai dengan contoh

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
_7 yang sama dari sebelumnya

let instructorData = {
    name: "Elie",
    additionalData: {
        instructor: true,
        favoriteHobbies: ["Playing Cello", "Tennis", "Coding"],
        moreDetails: {
            favoriteBasketballTeam: "New York Knicks",
            numberOfSiblings: 3,
            isYoungest: true,
            hometown: {
                city: "West Orange",
                state: "NJ",
            },
            citiesLivedIn: ["Seattle", "Providence", "New York"]
        }
    }
};

Sekarang mari kita coba menulis beberapa fungsi yang beroperasi pada struktur data bersarang ini. Jawabannya ada di bawah - tetapi coba lakukan sendiri terlebih dahulu

Latihan

Tulis fungsi yang disebut

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
_8 konsol itu. mencatat semua nilai dalam array kotaLivedIn

Tulis fungsi yang disebut

schools.georgiaInstituteOfTechnology.address;
schools.georgiaInstituteOfTechnology.phoneNumber;
schools.georgiaInstituteOfTechnology.dateEstablished;
_9 konsol itu. mencatat semua nilai di dalam objek
let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
0

Mari tulis sebuah fungsi bernama

let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
_1 yang menerima dua parameter, kunci dan nilai dan menambahkan kunci dan nilai ke objek
let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
2 dan mengembalikan objek
let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
2

Terakhir, mari tulis fungsi bernama

let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
4 yang menghapus kunci di objek
let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
2 dan mengembalikan objek
let instructorData = {
    name: "Tim",
    favoriteHobbies: ["Sailing", "Hiking", "Coding"]
};
2 (kunci baru yang ditambahkan di atas tidak termasuk dalam contoh ini)

Solusi

Untuk sebagian besar fungsi ini, menyimpan informasi bersarang dalam sebuah variabel akan berguna untuk menghindari keharusan mengetiknya berkali-kali. Berikut adalah solusi untuk masalah sebelumnya

displayCities

function displayCities(){
    let cityArray = instructorData.additionalData.moreDetails.citiesLivedIn;
    for(let i=0; i< cityArray.length; i++){
        console.log(cityArray[i]);
    }
}

tampilkan Data Kota Asal

function displayHometownData(){
    let hometownObject = instructorData.additionalData.moreDetails.hometown;
    for(let key in hometownObject){
        console.log(hometownObject[key]);
    }
}

addDetail

function addDetail(key,value){
    let detailsObject = instructorData.additionalData.moreDetails;
    detailsObject[key] = value;
    return detailsObject;
}

hapusDetail

Kita perlu memastikan bahwa kita menggunakan notasi braket dan bukan notasi titik saat mengakses objek kita. Karena kita tidak mengetahui nama kunci sampai fungsi dipanggil, kita perlu mengakses kunci itu secara dinamis, yang harus dilakukan dengan menggunakan notasi braket

Apa contoh objek bersarang?

Objek bersarang adalah objek yang berada di dalam objek lain. Pada contoh berikut 'kendaraan' adalah objek yang berada di dalam objek utama yang disebut 'orang' . Menggunakan notasi titik, properti (mobil) objek bersarang diakses.

Apa itu objek bersarang?

'Bersarang' adalah teknik di mana Anda menyisipkan atau 'menyarangkan' objek di tengah urutan penggabungan objek lain untuk mencegah pembuatan konektor panjang. This feature is particularly useful with repeating motifs where long connectors may be generated. Consider this design...

Bagaimana Anda mendeklarasikan objek bersarang?

Untuk membuat objek bersarang, panggil createNestedObject() . Untuk membuat array bersarang, panggil createNestedArray().

Apa objek dengan properti bersarang?

Properti bertingkat dari suatu objek adalah properti di dalam properti . Sebuah objek dapat berisi objek lain sebagai properti. kita dapat mengalokasikan objek lain sebagai properti dari suatu objek. Dengan kata lain, suatu objek dapat memiliki properti yang merupakan objek lain.