สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
const arr =[ {ชื่อ:'lorem', อายุ:20, สี:'red'}, {ชื่อ:'lorem', น้ำหนัก:1, ความสูง:5} , {ชื่อ:'hello', ipsum :'สี'}];
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอ็อบเจ็กต์ดังกล่าว ฟังก์ชันควรจัดกลุ่มคุณสมบัติทั้งหมดของอ็อบเจ็กต์ที่มีค่าสำหรับคุณสมบัติ "name" เหมือนกัน
ตัวอย่างเช่น −
สำหรับอาร์เรย์ด้านบน ผลลัพธ์ควรมีลักษณะดังนี้ −
const output =[ {ชื่อ:'lorem', อายุ :20, สี:'red', น้ำหนัก :1, ส่วนสูง :5}, {name:'hello', ipsum :'dolor'}];ก่อน>ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr =[ {ชื่อ:'lorem', อายุ:20, สี:'red'}, {ชื่อ:'lorem', น้ำหนัก:1, ความสูง:5} , {ชื่อ:'hello', ipsum :'dolor'}];const mergeList =(arr =[]) => { const temp ={}; arr.forEach(elem => { let name =elem.name; delete elem.name; temp[name] ={ ...temp[name], ...elem }; }); const res =[]; Object.keys(temp).forEach(key => { let object =temp[key]; object.name =key; res.push(object); }); return res;};console.log(mergeList(arr));ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ { อายุ:20, สี:'แดง', น้ำหนัก:1, ความสูง:5, ชื่อ:'lorem' }, { ipsum:'dolor', ชื่อ:'hello' }]