समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो स्ट्रिंग्स की एक सरणी लेता है। सरणी में सभी स्ट्रिंग्स में समान वर्ण होते हैं, या वर्णों की पुनरावृत्ति होती है, और केवल एक स्ट्रिंग में वर्णों का एक अलग सेट होता है। हमारे फ़ंक्शन को उस स्ट्रिंग को ढूंढना और वापस करना चाहिए।
उदाहरण के लिए
यदि सरणी है -
[‘ba’, 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]
फिर आवश्यक स्ट्रिंग 'फू' है।
स्ट्रिंग्स में रिक्त स्थान हो सकते हैं। रिक्त स्थान महत्वपूर्ण नहीं हैं, केवल गैर-रिक्त स्थान प्रतीक मायने रखते हैं। उदाहरण, एक स्ट्रिंग जिसमें केवल रिक्त स्थान होते हैं, एक खाली स्ट्रिंग की तरह होती है। यह गारंटी है कि सरणी में 3 से अधिक तार हैं।
उदाहरण
निम्नलिखित कोड है -
const arr = ['ba', 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]; const findOnlyUnique = (arr = []) => { const first = []; for(i = 0; i < arr.length; i++){ first.push(arr[i].toLowerCase().replace(/\s/g, '').split('')); for (j = 0; j < arr[i].length; j++){ first[i].sort(); } } const second = []; for (k = 0; k < arr.length; k++){ second.push(first[k].join()); } second.sort(); const third = []; if (second[1] !== second[second.length - 1]) { third.push(second[second.length - 1]); }else{ third.push(second[0]); } const last = []; for(let n = 0; n < first.length; n++){ last.push(first[n].join(',')); } return (arr[last.indexOf(third[0])]); }; console.log(findOnlyUnique(arr));
आउटपुट
foo