สมมติว่าเรามีอาร์เรย์จำนวนเต็ม (บวก ลบ และศูนย์):
const arr = [23, -1, 0, 11, 18];
เราต้องเขียนฟังก์ชันที่รับอาร์เรย์ดังกล่าวเป็นอาร์กิวเมนต์เดียว ฟังก์ชันต้องหาอัตราส่วนเศษส่วนของทั้งสามกลุ่ม คือ บวก ลบ และศูนย์
ตัวอย่าง
สำหรับอาร์เรย์ข้างต้น ความยาวคือ 5 ผลลัพธ์ควรเป็น:
const output = [.2, .2, .6];
อาร์เรย์ผลลัพธ์จะมี 3 ตัวเลข แทนอัตราส่วนของลบ ศูนย์ และบวก ตามลำดับ วิธีตรวจสอบเบื้องต้นคือบวกทั้งสามค่า ถ้าใกล้ 1 แสดงว่าตอบถูกต้อง
ตัวอย่างโค้ด
const arr = [23, -1, 0, 11, 18];
const findRatio = (arr = []) => {
const { length } = arr;
const res = [0, 0, 0];
for(let i = 0; i < arr.length; i++) {
const el = arr[i];
const key = el / Math.abs(el || 1);
res[key + 1]++;
}
return res.map(el => el / length);
};
console.log(findRatio(arr));
ผลลัพธ์
[0.2, 0.2, 0.6]