हमें एक ऐसा फ़ंक्शन लिखना आवश्यक है जो सरणी में कम से कम दो बार दिखाई देने वाले पहले तत्व की अनुक्रमणिका देता है। यदि कोई तत्व एक से अधिक बार प्रकट नहीं होता है, तो हमें -1 वापस करना होगा। शर्त यह है कि हमें इसे निरंतर स्थान में करना होगा (अर्थात, अतिरिक्त मेमोरी का उपयोग किए बिना)।
आइए इस समस्या का समाधान निकालें। हम सरणी पर पुनरावृति करने के लिए लूप के लिए उपयोग करेंगे और डुप्लिकेट की जांच के लिए Array.prototype.lastIndexOf() विधि का उपयोग करेंगे।
उदाहरण
const firstDuplicate = arr => { for(let i = 0; i < arr.length; i++){ if(arr.lastIndexOf(arr[i]) !== i){ return i; }; }; return -1; } console.log(firstDuplicate([3, 5, 6, 8, 5, 3])); // 0 console.log(firstDuplicate([0, 1, 2, 3, 4, 4, 5])); // 4 console.log(firstDuplicate([0, 1, 1, 2, 3, 4, 4, 5])); // 1 console.log(firstDuplicate([0, 1, 2, 3, 4, 9, 5])); // -1
आउटपुट
कंसोल में आउटपुट होगा -
0 4 1 -1