JavaScript (ES6) 51
เป็นเพียงการแสดงออกของบรรทัดเดียวโดยใช้ตัวแปรที่โหลดไว้ d เรียงลำดับอาร์เรย์ตามความถี่จากนั้นรับองค์ประกอบแรก
ผลข้างเคียงที่น่ารังเกียจอาร์เรย์เดิมมีการเปลี่ยนแปลง
d.sort((a,b)=>d.map(w=>t+=(w==b)-(w==a),t=0)&&t)[0]
ตามปกติให้ใช้. map แทน .reduce เพราะภาพรวมสั้นลง 1 ถ่าน ด้วย. ทำให้มันเกือบเป็นทางออกที่สะอาดและไม่ใช่กอล์ฟ
d.sort((a,b)=>d.reduce((t,w)=>t+(w==b)-(w==a),0))[0]
ในที่สุดโซลูชันที่ใช้ฟังก์ชั่นไม่เปลี่ยนอาร์เรย์เดิมและไม่มี globals (62 ไบต์):
F=d=>[...d].sort((a,b)=>d.reduce((t,w)=>t+(w==b)-(w==a),0))[0]
ทดสอบในคอนโซล FireFox / FireBug
d=[4,3,1,0,6,1,6,4,4,0,3,1,7,7,3,4,1,1,2,8]
d.sort((a,b)=>x.map(w=>t+=(w==b)-(w==a),t=0)&&t)[0]
เอาท์พุท 1
อาร์เรย์ d กลายเป็น:
[1, 1, 1, 1, 1, 4, 4, 4, 4, 3, 3, 3, 0, 6, 6, 0, 7, 7, 2, 8]