สมมติว่าเรามีข้อมูลเกี่ยวกับผู้ใช้บางคนเช่นนี้ −
const obj = { "Mary": { "2016-1": 2, "2016-5": 1, "2016-3": 1 }, "Paul": { "2016-1": 1, "2016-3": 1 }, "moth": { "2016-1": 2, "2016-5": 1 } };
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุดังกล่าว ฟังก์ชันของเราควรจัดกลุ่มข้อมูลผู้ใช้นี้เป็นออบเจ็กต์โดยที่ออบเจ็กต์แสดงวันที่ที่ไม่ซ้ำกันในแต่ละวัน
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const obj = { "Mary": { "2016-1": 2, "2016-5": 1, "2016-3": 1 }, "Paul": { "2016-1": 1, "2016-3": 1 }, "moth": { "2016-1": 2, "2016-5": 1 } }; const groupByDate = (obj = {}) => { const names = Object.keys(obj); const res = {}; for(let i = 0; i < names.length; i++){ const name = names[i]; const dates = Object.keys(obj[name]); for(let j = 0; j < dates.length; j++){ const date = dates[j]; if(!res.hasOwnProperty(date)){ res[date] = { names: [name], values: [obj[name][date]] } } else{ res[date].names.push(name); res[date].values.push(obj[name][date]); }; }; }; return res; }; console.log(groupByDate(obj));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
{ '2016-1': { names: [ 'Mary', 'Paul', 'moth' ], values: [ 2, 1, 2 ] }, '2016-5': { names: [ 'Mary', 'moth' ], values: [ 1, 1 ] }, '2016-3': { names: [ 'Mary', 'Paul' ], values: [ 1, 1 ] } }