समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो literals की दो सरणियां, arr1 और arr2, को पहली और दूसरी आर्गुमेंट के रूप में लेता है। हमारा फ़ंक्शन arr1 और arr2 में सामान्य तत्व को न्यूनतम सूची सूचकांक योग के साथ ढूंढेगा। यदि उत्तरों के बीच टाई है, तो हमें उन सभी को बिना किसी क्रम की आवश्यकता के आउटपुट करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है:
const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['d', 'a', 'c'];
तो आउटपुट होना चाहिए:
const output = ['a'];
आउटपुट व्याख्या
चूंकि 'd' और 'a' दोनों सरणियों में सामान्य हैं, 'd' का सूचकांक योग 3 + 0 = 3 है और 'a' का 0 + 1 = 1 है, इसलिए 'a' आवश्यक तत्व है।
उदाहरण
निम्न कोड देखें:
const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['d', 'a', 'c']; const findCommon = (arr1 = [], arr2 = []) => { let sum = Infinity const map = arr1.reduce((acc, str, index) => { acc[str] = index return acc }, {}) for (let i = 0; i < arr2.length; i++) { const index1 = map[arr2[i]] if (index1 >= 0 && index1 + i < sum) { sum = index1 + i } } const result = [] for (let i = 0; i < arr2.length; i++) { const index1 = map[arr2[i]] if (index1 >= 0 && index1 + i === sum) { result.push(arr2[i]) } } return result } console.log(findCommon(arr1, arr2));आउटपुट
निम्न कंसोल आउटपुट है:
['a']