একটি জাভাস্ক্রিপ্ট অবজেক্টে দুটি ভিন্ন পদ্ধতির সাথে কিভাবে বৈশিষ্ট্যের সংখ্যা গণনা করতে হয় তা শিখুন।
জাভাস্ক্রিপ্ট অবজেক্ট বৈশিষ্ট্যের সংখ্যা গণনা করতে, আপনি হয় ব্যবহার করতে পারেন:
- a
for
লুপ - অথবা
Object.keys()
পদ্ধতি।
চলুন তাদের দুজনকেই অন্বেষণ করি!
লুপের জন্য a দিয়ে বস্তুর বৈশিষ্ট্য গণনা করুন
এখানে dog
নামে একটি জাভাস্ক্রিপ্ট অবজেক্ট আছে :
const dog = {
name: "Naya",
age: 2,
color: "black",
Breed: "Rottweiler mix",
}
dog
-এ বস্তুর বৈশিষ্ট্যের সংখ্যা গণনা করতে , আসুন প্রথমে count
নামে একটি ভেরিয়েবল ঘোষণা করি এবং এটিকে 0
এর একটি প্রারম্ভিক মান দিন :
let count = 0
এখন আমাদের dog
দিয়ে লুপ করতে হবে বস্তু এবং প্রতিটি সম্পত্তির জন্য আমরা count
-এ একটি (+1) যোগ করি পরিবর্তনশীল:
for (let properties in dog) {
count = count + 1
}
এখন console.log()
ব্যবহার করে ফলাফল প্রিন্ট করার চেষ্টা করুন :
console.log(count)
// Result: 4
আপনি যদি সঠিকভাবে কোড লিখে থাকেন, তাহলে আপনাকে 4
পেতে হবে .
Object.keys() দিয়ে বস্তুর বৈশিষ্ট্য গণনা করুন
এছাড়াও আপনি JavaScript এর Object.keys()
ব্যবহার করতে পারেন সমস্ত গণনাযোগ্য গণনা করার পদ্ধতি একটি বস্তুর বৈশিষ্ট্য (এক সেকেন্ডে এটি সম্পর্কে আরও)।
চলুন dog
পুনরায় ব্যবহার করা যাক আগে থেকে অবজেক্ট, কিন্তু এখন আমরা dog
পাস করি Object.keys()
এ অবজেক্ট করুন এবং length
দিয়ে এর দৈর্ঘ্য গণনা করুন সম্পত্তি:
const dog = {
name: "Naya",
age: 2,
color: "black",
Breed: "Rottweiler mix",
}
let count = Object.keys(dog).length
console.log(count)
// Result: 4
আপনি দেখতে পাচ্ছেন, ফলাফল একই। নাকি এটা?
হ্যা এবং না. এটা প্রেক্ষাপটের উপর নির্ভর করে।
বনাম Object.keys() এর জন্য
for
ব্যবহার করার মধ্যে পার্থক্য লুপ এবং Object.keys()
হল:
-
for
লুপ বস্তুর উভয় বৈশিষ্ট্য গণনা করে (এখানে,dog
) এবং যে কোনো বৈশিষ্ট্য যা এর বাইরের বস্তুর সাথে সংযুক্ত হতে পারে। - ডিফল্টরূপে,
Object.keys()
পদ্ধতি শুধুমাত্র বস্তুর (নিজস্ব) গণনার বৈশিষ্ট্যগুলিকে গণনা করে (গণনা করে) - লিঙ্কযুক্ত বৈশিষ্ট্য নয়৷
গণনা গণনা এর আরেকটি শব্দ
আমি "লিঙ্কড প্রপার্টি" বলতে কি বুঝি?
একই Object.keys()
নেওয়া যাক আগে থেকে উদাহরণ, কিন্তু এই সময় আমরা লিঙ্ক dog
animal
নামক বস্তুর প্রতি অবজেক্ট _proto_
ব্যবহার করে সম্পত্তি:
// New object
let animal = {
fourLegs: true,
}
const dog = {
name: "Naya",
age: 2,
color: "black",
Breed: "Rottweiler mix",
}
// Link dog object to animal object
dog.__proto__ = animal
var count = Object.keys(dog).length
console.log(count)
// Result: 4
ফলাফল কেন 4, যখন dog
এর মোট বৈশিষ্ট্যের সংখ্যা এবং animal
5, এবং আমরা শুধু তাদের একসাথে লিঙ্ক করেছি এবং তাদের গণনা করেছি?
কারণ আমরা Object.keys()
ব্যবহার করছি যা শুধুমাত্র তার নিজস্ব (গণনাযোগ্য) বৈশিষ্ট্য গণনা করে, লিঙ্কযুক্ত বৈশিষ্ট্য নয়। তাই fourLegs
animal
থেকে সম্পত্তি বস্তুটি উপরের উদাহরণে গণনা করা হয় না।
এখন আরেকটি উদাহরণ চেষ্টা করা যাক, কিন্তু এবার আমরা for
ব্যবহার করি বৈশিষ্ট্য গণনা করার জন্য লুপ:
const animal = {
fourLegs: true,
}
const dog = {
name: "Naya",
age: 2,
color: "black",
Breed: "Rottweiler mix",
}
// Link dog object to animal object
dog.__proto__ = animal
let count = 0
for (properties in dog) {
count = count + 1
}
console.log(count)
// Result: 5
এখন আমরা 5টি বৈশিষ্ট্যই পাচ্ছি, কারণ Object.keys()
এর বিপরীতে যখন আমরা একটি for
ব্যবহার করি লুপ আমরা প্রতিটি গণনা করি লিঙ্কড সহ একটি বস্তুর সম্পত্তি বস্তুর বৈশিষ্ট্য।
আপনি দেখতে পাচ্ছেন, আপনি কোন পদ্ধতিটি ব্যবহার করেন তা গুরুত্বপূর্ণ৷
সারাংশে:
- একটি বস্তুর বৈশিষ্ট্যের সংখ্যা গণনা করার দুটি উপায় আছে। আপনি একটি
for
ব্যবহার করতে পারেন লুপ বাObject.keys()
পদ্ধতি। - একটি
for
ব্যবহার করুন লুপ করুন যদি আপনি আপনার সম্পত্তি গণনায় কোনো লিঙ্কযুক্ত বস্তুর বৈশিষ্ট্য অন্তর্ভুক্ত করতে চান। -
Object.keys()
ব্যবহার করুন যদি আপনি শুধুমাত্র গণনাযোগ্য বৈশিষ্ট্য গণনা করতে চান (বস্তুর নিজস্ব)।