हमें एक फ़ंक्शन लिखने की आवश्यकता होती है जो पहले तर्क के रूप में संख्याओं की एक सरणी और दूसरे तर्क के रूप में एक लक्ष्य योग लेता है। फिर हम सरणी के माध्यम से लूप करना चाहते हैं और फिर प्रत्येक मान को एक दूसरे में जोड़ना चाहते हैं (स्वयं + को छोड़कर)।
और यदि लूप किए गए दो मानों का योग लक्ष्य योग के बराबर है, और मानों की जोड़ी का सामना पहले नहीं किया गया है, तो हम उनके सूचकांकों को याद करते हैं और अंत में, सभी याद किए गए सूचकांकों का पूरा योग लौटाते हैं।पी>
यदि सरणी है -
const arr = [1, 4, 2, 3, 0, 5];
और योग है -
const sum = 7;
तब आउटपुट 11 होना चाहिए, क्योंकि,
4 + 3 = 7 5 + 2 = 7
इंडेक्स -
4 [index: 1] 2 [index: 2] 3 [index: 3] 5 [index: 5]
यानी
1 + 2 + 3 + 5 = 11
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 4, 2, 3, 0, 5]; const findIndexSum = (arr = [], sum = 0) => { let copy = arr.slice(0); const used = []; let index = 0, indexFirst = 0, indexSecond, first, second; while (indexFirst < copy.length){ indexSecond = indexFirst + 1; while(indexSecond < copy.length){ first = copy[indexFirst]; second = copy[indexSecond]; if (first + second === sum){ used.push(first, second); copy = copy.filter(el => first !== el && second !== el ); indexFirst--; break; } indexSecond++; } indexFirst++; }; const indexSum = used.sort().reduce((acc, val, ind) => { const fromIndex = ind === 0 || val !== used[ind - 1] ? 0 : index + 1 index = arr.indexOf(val, fromIndex); return acc + index; }, 0); return indexSum; }; console.log(findIndexSum(arr, 7));
आउटपुट
और कंसोल में आउटपुट होगा -
11