समस्या
ऑब्जेक्ट्स की एक सरणी दी गई है जहां प्रत्येक ऑब्जेक्ट में एक continent गुण होता है। जांचें कि क्या सरणी में सभी छह महाद्वीप (अफ्रीका, दक्षिण अमेरिका, उत्तर अमेरिका, यूरोप, एशिया, ऑस्ट्रेलिया) मौजूद हैं।
कार्यान्वयन
const people = [
{ firstName: 'Dinesh', lastName: 'A.', country: 'Algeria', continent: 'Africa', age: 25, language: 'JavaScript' },
{ firstName: 'Ishan', lastName: 'M.', country: 'Chile', continent: 'South America', age: 37, language: 'C' },
{ firstName: 'Rohit', lastName: 'X.', country: 'China', continent: 'Asia', age: 39, language: 'Ruby' },
{ firstName: 'Manpreet', lastName: 'P.', country: 'Andorra', continent: 'Europe', age: 55, language: 'Ruby' },
{ firstName: 'Rahul', lastName: 'Q.', country: 'Australia', continent: 'Australia', age: 65, language: 'PHP' },
];
const checkAllContinent = (arr = []) => {
const all = ['Africa', 'South America', 'North America', 'Europe', 'Asia', 'Australia'];
const listed = arr.map(obj => obj.continent);
for (let i = 0; i < listed.length; i++) {
const cont = listed[i];
const ind = all.indexOf(cont);
if (ind !== -1) {
all.splice(ind, 1); // मिले हुए महाद्वीप को सूची से हटा दें
}
}
return all.length === 0; // यदि सभी मिल गए तो खाली सरणी
};
console.log(checkAllContinent(people)); // false (उत्तर अमेरिका गायब है)आउटपुट
false
व्याख्या
allसरणी में सभी आवश्यक महाद्वीप होते हैं।listedइनपुट सरणी से महाद्वीप निकालता है।- प्रत्येक सूचीबद्ध महाद्वीप के लिए, यदि वह
allमें है, तो उसे हटा दिया जाता है। - अंत में, यदि
allखाली है, तो सभी महाद्वीप मिल गए।
सुधार: Set का उपयोग करके इसे अधिक कुशल बनाया जा सकता है:
const checkAllContinent = (arr) => {
const required = new Set(['Africa', 'South America', 'North America', 'Europe', 'Asia', 'Australia']);
arr.forEach(obj => required.delete(obj.continent));
return required.size === 0;
};