ধরুন আমাদের কাছে একটি 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' } ]