ধরুন, আমাদের কাছে এই ধরনের বস্তুর দুটি অ্যারে আছে −
const data = [ {"XD_A":"XDL","XD_B_1":"38","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"51","XD_B_2":"PB"}, {"XD_A":"XDL","XD_B_1":"58","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"}, {"XD_A":"XDL","XD_B_1":"76","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"} ]; const filters =[{"XD_A":"XDR"},{"XD_B_1":"38"}];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্টের মতো দুটি অ্যারে নেয়৷
তারপরে ফাংশনটি প্রথম অ্যারে (ডেটা অ্যারে) থেকে শুধুমাত্র সেই বস্তুগুলিকে বাছাই করা উচিত যাতে দ্বিতীয় অ্যারে (ফিল্টার অ্যারে) তে বিদ্যমান সমস্ত কী-মানের জোড়া রয়েছে৷
এবং ফাংশনটি সেই সমস্ত অবজেক্টকে একটি নতুন অবজেক্টে নিয়ে যাওয়া উচিত এবং সেই অবজেক্টটিকে ফিরিয়ে দেওয়া উচিত।
উপরের অ্যারের জন্য, প্রত্যাবর্তিত অ্যারেতে ঠিক এইরকম দুটি বস্তু থাকা উচিত -
const output = [ {"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"} ];
উদাহরণ
এর জন্য কোড হবে −
const data = [ {"XD_A":"XDL","XD_B_1":"38","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"51","XD_B_2":"PB"}, {"XD_A":"XDL","XD_B_1":"58","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"}, {"XD_A":"XDL","XD_B_1":"76","XD_B_2":"PB"}, {"XD_A":"XDR","XD_B_1":"38","XD_B_2":"PB"} ]; const filters =[{"XD_A":"XDR"},{"XD_B_1":"38"}]; const filter = (data, filters) => { return data.filter(e => { try{ filters.forEach(o => { Object.keys(o).forEach(key => { if(e[key] !== o[key]) throw new 1; }); }); return true; } catch(e){ return false; } }); } console.info(filter(data, filters));
আউটপুট
এবং কনসোলে আউটপুট হবে -
[ { XD_A: 'XDR', XD_B_1: '38', XD_B_2: 'PB' }, { XD_A: 'XDR', XD_B_1: '38', XD_B_2: 'PB' } ]