สมมติว่าเรามีวัตถุที่มีข้อมูลเกี่ยวกับบางคนเช่นนี้ -
const obj = { "Person1_Age": 22, "Person1_Height": 170, "Person1_Weight": 72, "Person2_Age": 27, "Person2_Height": 160, "Person2_Weight": 56 };
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุดังกล่าว และหน้าที่ของเราควรแยกข้อมูลเกี่ยวกับบุคคลที่ไม่ซ้ำกันออกเป็นวัตถุของตนเอง
ดังนั้นผลลัพธ์ของวัตถุข้างต้นควรมีลักษณะดังนี้ −
const output = [ { "name": "Person1", "age": "22", "height": 170, "weight": 72 }, { "name": "Person2", "age": "27", "height": 160, "weight": 56 } ];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const obj = { "Person1_Age": 22, "Person1_Height": 170, "Person1_Weight": 72, "Person2_Age": 27, "Person2_Height": 160, "Person2_Weight": 56 }; const separateOut = (obj = {}) => { const res = []; Object.keys(obj).forEach(el => { const part = el.split('_'); const person = part[0]; const info = part[1].toLowerCase(); if(!this[person]){ this[person] = { "name": person }; res.push(this[person]); } this[person][info] = obj[el]; }, {}); return res; }; console.log(separateOut(obj));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ { name: 'Person1', age: 22, height: 170, weight: 72 }, { name: 'Person2', age: 27, height: 160, weight: 56 } ]