কম্পিউটার

জাভাস্ক্রিপ্ট সহ নেস্টেড সংগ্রহ ফিল্টার


ধরুন, আমাদের কাছে এইরকম নেস্টেড অবজেক্টের একটি অ্যারে আছে -

const arr = [{
   id: 1,
   legs:[{
      carrierName:'Pegasus'
   }]
},
{
   id: 2,
   legs:[{
      carrierName: 'SunExpress'
   },
   {
      carrierName: 'SunExpress'
   }]
},
{
   id: 3,
   legs:[{
      carrierName: 'Pegasus'
   },
   {
      carrierName: 'SunExpress'
   }]
}];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্টের মতো একটি অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি অনুসন্ধান ক্যোয়ারী স্ট্রিং নেয়৷

আমাদের ফাংশন অ্যারে ফিল্টার করা উচিত শুধুমাত্র সেইসব বস্তু ধারণ করার জন্য যার "ক্যারিয়ার নাম" সম্পত্তির মান দ্বিতীয় আর্গুমেন্ট দ্বারা নির্দিষ্ট করা একই মান।

যদি উপরের অ্যারের জন্য, দ্বিতীয় যুক্তিটি "পেগাসাস"। তারপর আউটপুট −

এর মত হওয়া উচিত
const output = [{
   id: 1,
   legs:[{
      carrierName:'Pegasus'
   }]
},
{
   id: 3,
   legs:[{
      carrierName: 'Pegasus'
   },
   {
      carrierName: 'SunExpress'
   }]
}];

উদাহরণ

এর জন্য কোড হবে −

const arr = [{
   id: 1,
   legs:[{
      carrierName:'Pegasus'
   }]
},
{
   id: 2,
   legs:[{
      carrierName: 'SunExpress'
   },
   {
      carrierName: 'SunExpress'
   }]
},
{
   id: 3,
   legs:[{
      carrierName: 'Pegasus'
   },
   {
      carrierName: 'SunExpress'
   }]
}];
const keys = ['Pegasus'];
const filterByKeys = (arr = [], keys = []) => {
   const res = arr.filter(function(item) {
      const thisObj = this;
      return item.legs.some(leg => {
         return thisObj[leg.carrierName];
      });
   }, keys.reduce((acc, val) => {
      acc[val] = true;
      return acc;
   }, Object.create(null)));
   return res;
}
console.log(JSON.stringify(filterByKeys(arr, keys), undefined, 4));

আউটপুট

এবং কনসোলে আউটপুট হবে −

[
   {
      "id": 1,
      "legs": [
         {
            "carrierName": "Pegasus"
         }
      ]
   },
   {
      "id": 3,
      "legs": [
         {
            "carrierName": "Pegasus"
         },
         {
            "carrierName": "SunExpress"
         }
      ]
   }
]

  1. উদাহরণ সহ JavaScript getPrototypeOf

  2. জাভাস্ক্রিপ্টে নেস্টেড ডি-স্ট্রাকচারিং।

  3. উদাহরণ সহ জাভাস্ক্রিপ্টে উত্তরাধিকার

  4. জাভাস্ক্রিপ্টের সাথে লিঙ্কগুলি ফিল্টার করতে কীভাবে একটি অনুসন্ধান মেনু তৈরি করবেন?