เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ของค่าคงที่ ฟังก์ชันควรคืนค่าอาร์เรย์ใหม่ที่กรอง triplet ทั้งหมดออก
โค้ดสำหรับนี้:
const arr1 = [1,1,1,3,3,5]; const arr2 = [1,1,1,1,3,3,5]; const arr3 = [1,1,1,3,3,3]; const arr4 = [1,1,1,1,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,7,7]; const removeTriplets = arr => { const hashMap = arr => arr.reduce((acc, val) => { if(val in acc){ acc[val]++; }else{ acc[val] = 1; }; return acc; }, {}); let res = []; let obj = hashMap(arr); for(let key in obj){ for(let i = 0; i < obj[key] % 3; i++){ res.push(key) }; } return res; } console.log(removeTriplets(arr1)); console.log(removeTriplets(arr2)); console.log(removeTriplets(arr3)); console.log(removeTriplets(arr4));ผลลัพธ์ในคอนโซล:
[ '3', '3', '5' ] [ '1', '3', '3', '5' ] [] [ '1', '7', '7' ]