Làm phẳng một đối tượng trong javascript

Không có phương pháp trực tiếp để Làm phẳng các đối tượng lồng nhau trong JavaScript. Bạn phải kéo tất cả các giá trị đến một độ sâu duy nhất bằng cách sử dụng vòng lặp for và các phương thức khác

Làm phẳng đối tượng lồng nhau JavaScript

Mã ví dụ đơn giản




  

    let ob = {
      C: "EHs",
      A: "BN",
      N: +91,
      M: {
        HTML: "MR ABC",
        CSS: "XYZ",
        JS: "NONE"
      }
    };

    const flattenObj = [ob] => {

      let result = {};
      for [const i in ob] {

        if [[typeof ob[i]] === 'object' && !Array.isArray[ob[i]]] {
          const temp = flattenObj[ob[i]];
          for [const j in temp] {
            result[i + '.' + j] = temp[j];
          }
        }
        else {
          result[i] = ob[i];
        }
      }
      return result;
    };
    console.log[flattenObj[ob]];
  


đầu ra

Một vi dụ khac

function flattenObject[obj, newObj, prefix] {
    newObj = newObj || {};
    prefix = prefix || "";
    for [var key in obj] {
        if [obj.hasOwnProperty[key]] {
            const type = typeof obj[key];
            const newKey = !!prefix ? prefix + "." + key : key;
            if [type === "string"] {
                newObj[newKey] = obj[key];
            }
            else if [type === "object"] {
                flattenObject[obj[key], newObj, newKey];
            }
        }
    }
    return newObj;
}

var obj = {
    name:'Namig',
    surname:'Hajiyev',
    address:{
        city:'Sumgait',
        country:'Azerbaijan',
        geo: {
            lat:'40.5897200',
            long:'49.6686100'
        }
    }
}

console.log[flattenObject[obj]];

đầu ra


{
  "name": "Namig",
  "surname": "Hajiyev",
  "address.city": "Sumgait",
  "address.country": "Azerbaijan",
  "address.geo.lat": "40.5897200",
  "address.geo.long": "49.6686100"
}

Sử dụng đệ quy

const source = {
  a: 1,
  b: {
    c: true,
    d: {
      e: 'foo'
    }
  },
  f: false,
  g: ['red', 'green', 'blue'],
  h: [{
    i: 2,
    j: 3
  }]
}

const flatten = [obj, prefix = '', res = {}] => 
  Object.entries[obj].reduce[[r, [key, val]] => {
    const k = `${prefix}${key}`
    if[typeof val === 'object']{ 
      flatten[val, `${k}.`, r]
    } else {
      res[k] = val
    }
    return r
  }, res]
 
console.log[flatten[source]]

đầu ra

{
  "a": 1,
  "b.c": true,
  "b.d.e": "foo",
  "f": false,
  "g.0": "red",
  "g.1": "green",
  "g.2": "blue",
  "h.0.i": 2,
  "h.0.j": 3
}

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về mã ví dụ Js này

Ghi chú. Tất cả mã Ví dụ về JS đều được thử nghiệm trên trình duyệt Firefox và trình duyệt Chrome

hệ điều hành. cửa sổ 10

Mã số. Phiên bản HTML5

Rohit

Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật

JavaScript. Làm phẳng một đối tượng bằng các đường dẫn cho các phímCập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21. 51. 53 [UTC/GMT +8 giờ]

JavaScript cơ bản [Cú pháp ES6]. Bài tập-233 có lời giải

Viết chương trình JavaScript để làm phẳng một đối tượng với các đườ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. nguyên mẫu. reduce[] để chuyển đổi mọi nút lá thành nút đường dẫn phẳng
  • 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. giao phó[]
  • 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
  • Bạn phải luôn bỏ qua đối số thứ hai, tiền tố, trừ khi bạn muốn mọi khóa đều có tiền tố

Giải pháp mẫu

Mã JavaScript

//#Source //bit.ly/2neWfJ2 
const flattenObject = [obj, prefix = ''] =>
  Object.keys[obj].reduce[[acc, k] => {
    const pre = prefix.length ? prefix + '.' : '';
    if [typeof obj[k] === 'object'] Object.assign[acc, flattenObject[obj[k], pre + k]];
    else acc[pre + k] = obj[k];
    return acc;
  }, {}];
console.log[flattenObject[{ a: { b: { c: 1 } }, d: 1 }]];

Đầu ra mẫu

{"a.b.c":1,"d":1}

Sơ đồ


Bản thử trực tiếp

Xem Bút javascript-basic-exercise-233-1 của w3resource [@w3resource] trên CodePen


Cải thiện giải pháp mẫu này và đăng mã của bạn qua Disqus

Trước. Viết chương trình JavaScript lấy một hàm làm đối số, sau đó biến đối số đầu tiên thành đối số cuối cùng
Kế tiếp. Viết chương trình JavaScript để làm phẳng một mảng đã cho đến độ sâu đã chỉ định

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

JavaScript. Lời khuyên trong ngày

Lấy chỉ số lặp lại trong vòng lặp for-of

Chúng ta có thể lấy chỉ số lặp của vòng lặp for-of với phương thức entry của mảng
Sau đó, chúng ta có thể kết hợp điều đó với một nhiệm vụ phá hủy
Chẳng hạn, chúng ta có thể viết

element.style.display = 'none';

Nó giống như cài đặt hiển thị. 'không ai'
Nếu chúng ta muốn bật lại phần tử của chúng, chúng ta có thể viết

________số 8_______

i là chỉ số và v là giá trị

Giới thiệu. https. //chút. ly/3mp5NgH

 

  • Xu hướng hàng tuần
  • Bài tập lập trình Java cơ bản
  • Truy vấn con SQL
  • Bài tập cơ sở dữ liệu Adventureworks
  • Bài tập cơ bản C# Sharp
  • SQL COUNT[] với sự khác biệt
  • Bài tập chuỗi JavaScript
  • Xác thực biểu mẫu HTML JavaScript
  • Bài tập bộ sưu tập Java
  • hàm SQL COUNT[]
  • Tham gia bên trong SQL
  • Hàm JavaScript Bài tập
  • Hướng dẫn Python
  • Bài tập mảng Python
  • Tham gia chéo SQL
  • Bài tập về mảng Sharp trong C#

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 mảng đối tượng JavaScript?

Bạn sử dụng phương thức flat[] để nối các mảng con theo cách đệ quy thành một mảng . Phương thức phẳng [] lấy một giá trị độ sâu làm tham số của nó, giá trị này là tùy chọn tùy thuộc vào độ sâu của mảng bạn muốn làm phẳng [nối]. Phương thức phẳng [] mặc định lấy 1 làm độ sâu.

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 phẳng JavaScript hoạt động như thế nào?

Làm phẳng mảng có nghĩa là giảm số chiều của mảng. Nói một cách đơn giản hơn, điều đó có nghĩa là giảm một mảng nhiều chiều thành một chiều cụ thể . let arr = [[1, 2],[3, 4],[5, 6, 7, 8, 9],[10, 11, 12]]; .

Chủ Đề