ধরুন আমাদের কাছে একটি JSON অবজেক্ট আছে যেখানে কিছু দেশের কিছু শহরের অবস্থান সম্পর্কে তথ্য রয়েছে -
const countryInfo = {
country: [{
name: "Bangladesh",
province: [{
name:"Dhaka",
city: [{
name:"Tangail",
lat: '11'
}, {
name:"Jamalpur",
lat: '12'
}]
}, {
name: "Khulna",
city: [{
name:"Jossore",
lat: '22'
}, {
name:"Tangail",
lat: '23'
}]
}, {
name: "Rajshahi",
city: [{
name:"Pabna",
lat: '33'
}, {
name:"Rangpur",
lat: '33'
}]
}]
},{
name: "India",
province: [{
name:"West Bengal",
city: [{
name:"Calcutta",
lat: '111'
}, {
name:"Tangail",
lat: '112'
}]
}, {
name: "Uttar Pradesh",
city: [{
name:"Agra",
lat: '122'
}, {
name:"Tajmahal",
lat: '123'
}]
}, {
name: "Rajasthan",
city: [{
name:"Kanpur",
lat: '131'
}, {
name:"Jaypur",
lat: '132'
}]
}]
}]
}; আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই ধরনের একটি বস্তু এবং একটি অনুসন্ধান স্ট্রিং নেয়৷
তারপরে আমাদের সার্চ স্ট্রিং এর সাথে মিলে যাওয়া সমস্ত শহরের নাম অনুসন্ধান করা উচিত এবং কোয়েরির সাথে মেলে এমন সমস্ত শহরের অবজেক্টগুলির একটি অ্যারে ফিরিয়ে দেওয়া উচিত৷
উদাহরণ
এর জন্য কোড হবে −
const countryInfo = {
country: [{
name: "Bangladesh",
province: [{
name:"Dhaka",
city: [{
name:"Tangail",
lat: '11'
}, {
name:"Jamalpur",
lat: '12'
}]
}, {
name: "Khulna",
city: [{
name:"Jossore",
lat: '22'
}, {
name:"Tangail",
lat: '23'
}]
}, {
name: "Rajshahi",
city: [{
name:"Pabna",
lat: '33'
}, {
name:"Rangpur",
lat: '33'
}]
}]
},{
name: "India",
province: [{
name:"West Bengal",
city: [{
name:"Calcutta",
lat: '111'
}, {
name:"Tangail",
lat: '112'
}]
}, {
name: "Uttar Pradesh",
city: [{
name:"Agra",
lat: '122'
}, {
name:"Tajmahal",
lat: '123'
}]
}, {
name: "Rajasthan",
city: [{
name:"Kanpur",
lat: '131'
}, {
name:"Jaypur",
lat: '132'
}]
}]
}]
};
const searchForCity = (obj, query) => {
const cities = obj.country.reduce((acc, val) => {
val.province.forEach(el => {
el.city.forEach(elm => {
acc.push(elm);
});
});
return acc;
},[]);
const res = cities.filter(el => {
return el.name === query;
});
return res;
};
console.log(searchForCity(countryInfo, 'Tangail')); আউটপুট
কনসোলে আউটপুট -
[
{ name: 'Tangail', lat: '11' },
{ name: 'Tangail', lat: '23' },
{ name: 'Tangail', lat: '112' }
]