Làm phẳng đối tượng sâu JavaScript

Trong mảng trên, phần tử đầu tiên chỉ sâu một cấp, trong khi phần tử thứ hai sâu hai cấp

Bạn có thể chỉ cần sử dụng phương pháp Array.prototype.flat() để làm phẳng mảng. Ví dụ: để làm phẳng nó hoàn toàn, bất kể mảng sâu bao nhiêu cấp, bạn có thể thực hiện như sau

// ES2019+
const flattened = users.flat(Infinity);

console.log(flattened);

/* [
    { id: 1, name: 'John' },
    { id: 3, name: 'Wayne' },
    { id: 7, name: 'Melissa' },
    { id: 2, name: 'David' },
] */

Nếu bạn chỉ muốn làm phẳng mảng đến một mức lồng nhau cụ thể, thì bạn có thể chỉ định nó làm đối số đầu tiên cho phương thức Array.prototype.flat(), chẳng hạn, như vậy

// ES2019+
const flattened = users.flat(4); // flatten array 4-levels deep

console.log(flattened);

/* [
    { id: 1, name: 'John' },
    { id: 3, name: 'Wayne' },
    { id: 7, name: 'Melissa' },
    { id: 2, name: 'David' },
] */

Nếu bạn không chỉ định bất kỳ đối số nào cho phương thức Array.prototype.flat(), thì theo mặc định, nó sẽ chỉ làm phẳng sâu một cấp độ. Ví dụ

// ES2019+
const flattened = users.flat();

console.log(flattened);

/* [
    { id: 1, name: 'John' },
    { id: 3, name: 'Wayne' },
    [ { id: 7, name: 'Melissa' }, { id: 2, name: 'David' } ],
] */

Nếu bạn chưa hỗ trợ ES2019, thì bạn có thể sử dụng các cách tương thích ngược khác để làm phẳng một mảng


Hy vọng bạn tìm thấy bài viết này hữu ích. Nó được xuất bản vào ngày 08 tháng 5 năm 2021. Hãy thể hiện tình yêu và sự ủng hộ của bạn bằng cách

Làm phẳng một đối tượng javascript là một câu hỏi rất phổ biến trong Phỏng vấn giao diện người dùng

Có thể dễ dàng làm phẳng đối tượng được lồng sâu bằng cách sử dụng kỹ thuật đệ quy

Mã phụ thuộc vào cách một đối tượng phẳng sẽ trông như thế nào

// input
var user = {
  name: "Vishal",
  address: {
    primary: {
      house: "109",
      street: {             
        main: "21",
        cross: "32"
      }
    }
  }
};

//output
{
  user_name: "Vishal",
  user_address_primary_house: "109",
  user_address_primary_street_main: "21",
  user_address_primary_street_cross: "32",
}

thuật toán

  1. Lặp lại các khóa của đối tượng
  2. Nối tên khóa con vào tên khóa cha
  3. Nếu giá trị của khóa con là một đối tượng, hãy gọi lại cùng một chức năng
  4. Khác gán khóa cho giá trị mới

Mã số

var flattendObj = {};
const flattenObject = (obj, keyName) => {
  Object.keys(obj).forEach(key => {
    var newKey = `${keyName}_${key}` 
    if (typeof obj[key] === "object") {
      // calling the function again
      flattenObject(obj[key], newKey);
    } else {
      flattendObj[newKey] = obj[key];
    }
  });
};
console.log(flattendObj);

Đệ quy là phép thuật, nếu bạn biết đâu là điểm dừng. 🌀

Theo dõi tôi để biết thêm nội dung như vậy

Nhằm mục đích đăng giải pháp của những vấn đề như vậy hàng ngày. 🔥

Thách thức tôi với nhiều vấn đề hơn. 💪

Làm cách nào để làm phẳng một đối tượng trong JavaScript?

JavaScript. Làm phẳng một đối tượng bằng đường dẫn cho các phím .
sử dụng đệ quy
Sử dụng đối tượng. keys(obj) kết hợp với Array. .
Nếu giá trị của khóa là một đối tượng, hàm sẽ tự gọi chính nó với tiền tố thích hợp để tạo đường dẫn bằng Object. .
Mặt khác, nó thêm cặp khóa-giá trị tiền tố thích hợp vào đối tượng bộ tích lũy

Làm phẳng một đối tượng JavaScript nghĩa là gì?

Làm phẳng mảng là quá trình giảm số chiều của mảng . Nói cách khác, đó là một quá trình giảm số chiều của một mảng xuống một số thấp hơn.

Làm cách nào để làm phẳng các đối tượng lồng nhau trong js?

Có thể dễ dàng làm phẳng đối tượng được lồng sâu bằng cách sử dụng kỹ thuật đệ quy. .
Lặp lại các khóa của đối tượng
Nối tên khóa con vào tên khóa cha
Nếu giá trị của khóa con là một đối tượng, hãy gọi lại cùng một chức năng
Khác gán khóa cho giá trị mới

Làm cách nào để làm phẳng một đối tượng JSON trong JavaScript?

Làm phẳng một đối tượng JSON. var làm phẳng = (hàm (isArray, được bọc) { hàm trả về (bảng) { trả về giảm ("", {}, bảng); }; hàm giảm (đường dẫn, bộ tích lũy, bảng) { if (isArray (bảng)) { var