Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ผสานและจัดกลุ่มคุณสมบัติของวัตถุใน JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -

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