मान लीजिए, हमें एक फ़ंक्शन लिखना है जो आर्गुमेंट के रूप में नंबरों का एक एरे लेता है। हमें एक नया एरे लौटाना है जिसमें प्रत्येक संख्या का गुणनफल हो सिवाय उस इंडेक्स के जिसके लिए हम वर्तमान में गुणनफल की गणना कर रहे हैं।
उदाहरण के लिए, यदि 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 ]