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

การสร้างอาร์เรย์ผลิตภัณฑ์ใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของ Numbers ฟังก์ชันควรสร้างอาร์เรย์ใหม่ตามอาร์เรย์เดิม แต่ละองค์ประกอบที่สอดคล้องกันของอาร์เรย์ใหม่ควรเป็นผลคูณขององค์ประกอบทั้งหมดของอาร์เรย์ดั้งเดิมรวมถึงองค์ประกอบนั้นด้วย

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

หากอาร์เรย์อินพุตเป็น −

const arr = [1, 2, 3, 4, 5];

จากนั้นอาร์เรย์เอาต์พุตควรเป็น −

const output = [120, 60, 40, 30, 24];

เราต้องบรรลุสิ่งนี้ในเวลาเชิงเส้นและปริภูมิคงที่ (แน่นอนว่าไม่รวมพื้นที่ที่ใช้ในการสร้างอาร์เรย์ใหม่)

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = [1, 2, 3, 4, 5];
const exclusiveProduct = (arr = []) => {
   // O(n) time complexity
   const product = arr.reduce((acc, val) => acc * val);
   const res = [];
   // O(n) time complexity
   for(let i = 0; i < arr.length; i++){
      const el = arr[i];
      res[i] = product / el;
   };
   return res;
};
console.log(exclusiveProduct(arr));

ผลลัพธ์

ต่อไปนี้เป็นผลลัพธ์บนคอนโซล -

[120, 60, 40, 30, 24]