Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

JavaScript: การจัดเรียง Object ของ Objects

สมมติเรามี Object ของ Objects แบบนี้:

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

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับออบเจกต์แบบนี้เข้ามาและจัดเรียง sub-objects ตาม property 'position' (เพิ่มขึ้นหรือลดลงก็ได้)

ตัวอย่างโค้ด

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 }
}