สมมติว่าเราต้องเขียนฟังก์ชันที่รับอาร์เรย์ตัวเลขเป็นอาร์กิวเมนต์ เราต้องคืนค่าอาร์เรย์ใหม่ที่มีผลคูณของแต่ละตัวเลข ยกเว้นดัชนีที่เรากำลังคำนวณผลคูณอยู่
ตัวอย่าง ถ้า arr มี 5 ดัชนี และเรากำลังสร้างค่าสำหรับดัชนี 1 ตัวเลขที่ดัชนี 0, 2, 3 และ 4 จะถูกคูณกัน เหมือนกัน ถ้าเราสร้างค่าสำหรับดัชนี 2 ตัวเลขที่ดัชนี 0, 1, 3 และ 4 จะถูกคูณกัน และไปเรื่อยๆ
หมายเหตุ − รับประกันว่าองค์ประกอบทั้งหมดภายในอาร์เรย์เป็น non-zero
เราจะ reduce อาร์เรย์เป็นผลคูณก่อน แล้ววนลูปผ่านอาร์เรย์หาค่าสำหรับดัชนีนั้น เราแค่หารผลคูณด้วยค่าเดิมที่ดัชนีนั้น
โค้ดสำหรับทำนี้จะเป็น −
ตัวอย่าง
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 ]