Bagaimana Anda membuat objek bersarang di javascript?

Buat grup level bersarang secara dinamis berdasarkan properti di Javascript

Kode

/**
 * Creates nested groups by object properties.
 * `properties` array nest from highest(index = 0) to lowest level.
 *
 * @param {String[]} properties
 * @returns {Object}
 */
function nestGroupsBy(arr, properties) {
  properties = Array.from(properties);
  if (properties.length === 1) {
    return groupBy(arr, properties[0]);
  }
  const property = properties.shift();
  var grouped = groupBy(arr, property);
  for (let key in grouped) {
    grouped[key] = nestGroupsBy(grouped[key], Array.from(properties));
  }
  return grouped;
}

/**
 * Group objects by property.
 * `nestGroupsBy` helper method.
 *
 * @param {String} property
 * @param {Object[]} conversions
 * @returns {Object}
 */
function groupBy(conversions, property) {
  return conversions.reduce((acc, obj) => {
    let key = obj[property];
    if (!acc[key]) {
      acc[key] = [];
    }
    acc[key].push(obj);
    return acc;
  }, {});
}

Contoh

var products = [
  { id: 1, name: 'p1', country: 'US', platform: 'win'},
  { id: 2, name: 'p1', country: 'US', platform: 'win'},
  { id: 3, name: 'p1', country: 'GB', platform: 'mac'},
  { id: 4, name: 'p1', country: 'US', platform: 'mac'},
  { id: 5, name: 'p2', country: 'US', platform: 'win'},
  { id: 6, name: 'p2', country: 'GB', platform: 'win'},
  { id: 7, name: 'p3', country: 'US', platform: 'mac'},
];

const groups = nestGroupsBy(products, ['name', 'country', 'platform']);
console.log(groups);
/* 
output:
{ p1: 
  { US: 
    { win: [
        {id: 1, name: 'p1', country: 'US', platform: 'win'},
        {id: 2, name: 'p1', country: 'US', platform: 'win'},          
      ], 
      mac: [
        {id: 4, name: 'p1', country: 'US', platform: 'mac'},
      ] 
     }, 
     GB: { win: [{ id: 3, name: 'p1', country: 'GB', platform: 'mac'}] } },
  p2: { US: { win: [Array] }, GB: { win: [Array] } },
  p3: { US: { mac: [Array] } } }  
*/
_

Bagaimana cara membuat objek bersarang di JavaScript?

Bagaimana Cara Membuat Objek Bersarang di JavaScript? .
Objek "data" dibuat yang berisi beberapa properti, termasuk "id", "email", "contactInfo", "name", "address", "city" dan "country"
Objek bersarang seperti “contactInfo” dan “address” dapat diambil melalui operator titik

Bagaimana Anda menulis 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.

Bagaimana cara membuat objek bersarang secara dinamis di JavaScript?

String yang memberikan nama setelan kemudian dipisahkan dengan garis bawah menjadi sebuah larik. Pengaturan baru harus ditambahkan ke objek "Pengaturan" yang ada dengan membuat objek bersarang baru dengan nama yang diberikan oleh setiap bagian dari array, kecuali bagian terakhir yang harus berupa string yang memberikan nilai pengaturan

Bagaimana cara membuat objek di dalam objek lain di JavaScript?

Dalam JavaScript, sebuah objek dapat dibuat dengan dua cara. 1) menggunakan Object Literal/Initializer Syntax 2) menggunakan fungsi Object() Constructor dengan kata kunci new. Objek yang dibuat menggunakan salah satu dari metode ini adalah sama. Contoh berikut mendemonstrasikan pembuatan objek menggunakan kedua cara.