কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে মান অনুযায়ী অবজেক্টে সার্চ করা


মান लीজি আমাদের কাছে এমন একটি অবজেক্ট রয়েছে:

const obj = {
  "name": "Vivek Sharma",
  "occupation": "Software Engineer",
  "age": 23,
  "contacts": [{
    "name": "Mukul Sharma",
    "occupation": "Software Engineer",
    "age": 31,
  }, {
    "name": "Jay Sharma",
    "occupation": "Software Engineer",
    "age": 27,
  }, {
    "name": "Rajan Sharma",
    "occupation": "Software Engineer",
    "age": 32,
  }]
};

এখানে এটি শুধু এক লেভেল নেস্টেড, কিন্তু নেস্টিং আরও গভীরও হতে পারে। আমাদের একটি অবজেক্ট ফাংশন Object.prototype.keysOf() লিখতে হবে যা একটি মান নেবে এবং সেই মান যাবতীয় সব কীগুলোর একটি অ্যারে ফেরত দেবে।

এখন, এই ফাংশনের কোড লিখি:

উদাহরণ

const obj = {
  "name": "Vivek Sharma",
  "occupation": "Software Engineer",
  "age": 23,
  "contacts": [{
    "name": "Mukul Sharma",
    "occupation": "Software Engineer",
    "age": 31,
  }, {
    "name": "Jay Sharma",
    "occupation": "Software Engineer",
    "age": 27,
  }, {
    "name": "Rajan Sharma",
    "occupation": "Software Engineer",
    "age": 32,
  }]
};
const keysOf = function(val, obj = this, res = []){
  const keys = Object.keys(obj);
  for(let ind = 0; ind < keys.length; ind++){
    if(obj[keys[ind]] === val){
      res.push(keys[ind]);
    }else if(typeof obj[keys[ind]] === 'object' &&
      !Array.isArray(obj[keys[ind]])){
      keysOf(val, obj[keys[ind]], res);
    };
  };
  return res;
};
Object.prototype.keysOf = keysOf;
console.log(obj.keysOf(23));

আউটপুট

কনসোলে আউটপুট হবে:

['age']

  1. জাভাস্ক্রিপ্টে Undefined প্রপার্টি

  2. জাভাস্ক্রিপ্টে অবজেক্ট সমতা ব্যাখ্যা

  3. জাভাস্ক্রিপ্টে ভ্যালু অনুযায়ী অবজেক্ট গ্রুপ করা

  4. জাভাস্ক্রিপ্টে দুটি অবজেক্ট তুলনা করে নেস্টেড ভ্যালু গ্রুপিং করা