สมมติว่าเรามี Object of Objects แบบนี้ -
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 } }