Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách sắp xếp object của object theo giá trị khóa trong JavaScript

Giả sử chúng ta có một object với khóa là chuỗi và giá trị cũng là object như sau:

const companies = {
  'landwaves ltd': {employees: 1200, worth: '1.2m', CEO: 'Rajiv Bansal'},
  'colin & co': {employees: 200, worth: '0.2m', CEO: 'Sukesh Maheshwari'},
  'motilal biscuits': {employees: 975, worth: '1m', CEO: 'Rahul Gupta'},
  'numbtree': {employees: 1500, worth: '1.5m', CEO: 'Jay Kumar'},
  'solace pvt ltd': {employees: 1800, worth: '1.65m', CEO: 'Arvind Sangal'},
  'ambicure': {employees: 170, worth: '0.1m', CEO: 'Preetam Chawla'},
  'dis n dat': {employees: 540, worth: '1m', CEO: 'Mohit Sharma'},
}

Cần viết hàm sắp xếp object này theo khóa và trả về object đã sắp xếp.

Ví dụ

const companies = {
  'landwaves ltd': {employees: 1200, worth: '1.2m', CEO: 'Rajiv Bansal'},
  'colin & co': {employees: 200, worth: '0.2m', CEO: 'Sukesh Maheshwari'},
  'motilal biscuits': {employees: 975, worth: '1m', CEO: 'Rahul Gupta'},
  'numbtree': {employees: 1500, worth: '1.5m', CEO: 'Jay Kumar'},
  'solace pvt ltd': {employees: 1800, worth: '1.65m', CEO: 'Arvind Sangal'},
  'ambicure': {employees: 170, worth: '0.1m', CEO: 'Preetam Chawla'},
  'dis n dat': {employees: 540, worth: '1m', CEO: 'Mohit Sharma'},
};

const sortKeys = (obj) => {
  return Object.assign(...Object.entries(obj).sort().map(([key, value]) => {
    return { [key]: value }
  }));
};

console.log(sortKeys(companies));

Kết quả

Đầu ra trong console sẽ là:

{
  ambicure: { employees: 170, worth: '0.1m', CEO: 'Preetam Chawla' },
  'colin & co': { employees: 200, worth: '0.2m', CEO: 'Sukesh Maheshwari'},
  'dis n dat': { employees: 540, worth: '1m', CEO: 'Mohit Sharma' },
  'landwaves ltd': { employees: 1200, worth: '1.2m', CEO: 'Rajiv Bansal' },
  'motilal biscuits': { employees: 975, worth: '1m', CEO: 'Rahul Gupta' },
  numbtree: { employees: 1500, worth: '1.5m', CEO: 'Jay Kumar' },
  'solace pvt ltd': { employees: 1800, worth: '1.65m', CEO: 'Arvind Sangal' }
}