Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript:Sắp xếp đối tượng của đối tượng

Giả sử chúng ta có một Đối tượng Đối tượng như thế này -

const obj = {
   "CAB": {
      name: 'CBSSP',
      position: 2
   },
   "NSG": {
      name: 'NNSSP',
      position: 3
   },
   "EQU": {
      name: 'SSP',
      position: 1
   }
};

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy và sắp xếp các đối tượng con trên cơ sở thuộc tính 'position' của các đối tượng con (theo thứ tự tăng hoặc giảm).

Ví dụ

Mã cho điều này sẽ là -

const obj = {
   "CAB": {
      name: 'CBSSP',
      position: 2
   },
   "NSG": {
      name: 'NNSSP',
      position: 3
   },
   "EQU": {
      name: 'SSP',
      position: 1
   }
};
const sortByPosition = obj => {
   const order = [], res = {};
   Object.keys(obj).forEach(key => {
      return order[obj[key]['position'] - 1] = key;
   });
   order.forEach(key => {
      res[key] = obj[key];
   });
   return res;
}
console.log(sortByPosition(obj));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{
   EQU: { name: 'SSP', position: 1 },
   CAB: { name: 'CBSSP', position: 2 },
   NSG: { name: 'NNSSP', position: 3 }
}