Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ส่วนแบ่งของค่าบวก ลบ และศูนย์ในอาร์เรย์ด้วย JavaScript

สมมติว่าเรามีอาร์เรย์จำนวนเต็ม (บวก ลบ และศูนย์):

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]