JavaScript-এ নেস্টেড অবজেক্ট অ্যারেতে কোনো প্রপার্টি `false` আছে কিনা চেক করার জন্য `Object.values()`, `some()` এবং ডি-স্ট্রাকচারিং ব্যবহার করা হয়।
ডেটা স্ট্রাকচার
const details = [
{
customerDetails: [
{ isMarried: true },
{ isMarried: true }
]
},
{
customerDetails: [
{ isMarried: true },
{ isMarried: true }
]
}
];
চেক কোড
const hasFalse = Object.values(details)
.some(({ customerDetails }) =>
customerDetails.some(({ isMarried }) => !isMarried)
);
console.log(hasFalse); // false (সব true)
চলানোর পদ্ধতি
- কোডটি
checkFalse.jsনামে সংরক্ষণ করুন। - টার্মিনালে চালান:
node checkFalse.js
আউটপুট
false
কোড ব্যাখ্যা
- `Object.values(details)` - অবজেক্টের ভ্যালুগুলোকে অ্যারে বানায়।
- বাইরের `.some()` - প্রথম লেভেল অবজেক্টে ইটারেট।
- `{ customerDetails }` - ডি-স্ট্রাকচারিং দিয়ে প্রপার্টি বের করা।
- ভিতরের `.some()` - `customerDetails` অ্যারেতে ইটারেট।
- `!isMarried` - `false` হলে `true` রিটার্ন (মানে false পাওয়া গেলে)।
ট্রু ফেলসি মান পাওয়ার উদাহরণ
const mixed = [
{ items: [{ active: true }, { active: false }] },
{ items: [{ active: true }] }
];
const hasInactive = mixed.some(({ items }) =>
items.some(({ active }) => !active)
);
console.log(hasInactive); // true (দ্বিতীয় অবজেক্টে false আছে)
সাধারণ প্যাটার্ন: যেকোনো falsy চেক
function hasFalsyValue(objArray, keyPath) {
return objArray.some(obj => {
// নেস্টেড পাথ রিজলভ (সিম্পল ভার্সন)
const keys = keyPath.split('.');
let val = obj;
for (const k of keys) val = val?.[k];
return !val; // falsy চেক
});
}
console.log(hasFalsyValue(details, "customerDetails.isMarried")); // false