สมมุติว่าเรามีอาร์เรย์แบบนี้ -
const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]];
เราควรเขียนฟังก์ชันที่รับอาร์เรย์ดังกล่าว สังเกตว่าอาร์เรย์ย่อยทั้งหมดมีองค์ประกอบอยู่สามองค์ประกอบอย่างแม่นยำ
ฟังก์ชันของเราควรกรองอาร์เรย์ย่อยนั้นที่มีค่าการทำซ้ำเป็นองค์ประกอบแรก นอกจากนี้ สำหรับอาร์เรย์ย่อย เราลบออก เราควรเพิ่มองค์ประกอบที่สามไปยังคู่ที่ไม่ซ้ำที่มีอยู่
ดังนั้น สำหรับอาร์เรย์ด้านบน ผลลัพธ์ควรมีลักษณะดังนี้ −
const output = [[12345, "product", "25"],[1234567, "other", "10"]];
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]]; const addSimilar = (arr = []) => { const res = []; const map = {}; arr.forEach(el => { const [id, name, amount] = el; if(map.hasOwnProperty(id)){ const newAmount = +amount + +res[map[id] - 1][2]; res[map[id] - 1][2] = '' + newAmount; }else{ map[id] = res.push(el); } }); return res; } console.log(addSimilar(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ [ 12345, 'product', '25' ], [ 1234567, 'other', '10' ] ]