Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

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


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

const arr = [23, -1, 0, 11, 18];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์เช่นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว จากนั้นฟังก์ชันควรหาอัตราส่วนเศษส่วนสำหรับทั้งสามกลุ่มที่แตกต่างกัน กล่าวคือ บวก ลบ และศูนย์

ตัวอย่างเช่น −

สำหรับอาร์เรย์ด้านบน ความยาวของอาร์เรย์คือ 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]