JavaScript:對物件的物件進行排序


假設我們有一個這樣的物件的物件 −

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

我們需要編寫一個 JavaScript 函式,該函式接受一個這樣的陣列並根據子物件的“位置”屬性對子物件進行排序(按升序或降序)。

示例

程式碼如下 −

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));

輸出

控制檯中的輸出如下 −

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

更新於: 21-11-2020

2K+ 瀏覽量

kickstart Your事業

透過完成課程來獲得證書

開始
廣告
© . All rights reserved.