สมมุติว่าเราต้องเขียนฟังก์ชันที่รับอาร์เรย์ของตัวเลขเป็นอาร์กิวเมนต์ เราต้องคืนค่าอาร์เรย์ใหม่พร้อมกับผลคูณของแต่ละตัวเลข ยกเว้นดัชนีที่เรากำลังคำนวณผลิตภัณฑ์อยู่
ตัวอย่างเช่น ถ้า arr มีดัชนี 5 ตัว และเรากำลังสร้างค่าสำหรับดัชนี 1 ตัวเลขที่ดัชนี 0, 2, 3 และ 4 จะถูกคูณ ในทำนองเดียวกัน หากเรากำลังสร้างค่าสำหรับดัชนี 2 ตัวเลขที่ดัชนี 0, 1, 3 และ 4 จะถูกคูณไปเรื่อยๆ
หมายเหตุ - รับประกันได้ว่าองค์ประกอบทั้งหมดภายในอาร์เรย์นั้นไม่เป็นศูนย์
ก่อนอื่นเราจะลดอาร์เรย์ลงในผลิตภัณฑ์ จากนั้นเราจะวนรอบอาร์เรย์เพื่อหาค่าของดัชนีนั้น เราจะหารผลคูณด้วยค่าเดิมที่ดัชนีนั้น
รหัสสำหรับการทำเช่นนี้จะเป็น -
ตัวอย่าง
const arr = [12, 10, 8, 6, 5, 2]; const produceArray = (arr) => { const product = arr.reduce((acc, val) => acc*val); return arr.map(el => { return product/el; }); }; console.log(produceArray(arr));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[ 4800, 5760, 7200, 9600, 11520, 28800 ]