नेस्टेड ऑब्जेक्ट्स/ऐरे में false मान की जांच के लिए Object.values(), some(), every() का संयोजन उपयोग करें।
डेटा स्ट्रक्चर
const details = [
{
customerDetails: [
{ isMarried: true },
{ isMarried: true }
]
},
{
customerDetails: [
{ isMarried: true },
{ isMarried: false } // यह false है
]
}
];
विधि 1: some() + Object.values() (मूल उदाहरण)
const hasFalse = Object.values(details).some(({ customerDetails }) =>
customerDetails.some(({ isMarried }) => !isMarried)
);
console.log(hasFalse); // true (क्योंकि एक false है)
विधि 2: फ्लैटमैप के साथ (सरल)
// सभी isMarried मानों को फ्लैट ऐरे में लाएं
const allMarried = details.flatMap(d => d.customerDetails).map(c => c.isMarried);
// कोई false है?
const hasFalse = allMarried.some(v => v === false);
// या सभी true हैं?
const allTrue = allMarried.every(v => v === true);
console.log("सभी मान:", allMarried); // [ true, true, true, false ]
console.log("कोई false?", hasFalse); // true
console.log("सभी true?", allTrue); // false
विधि 3: रिकर्सिव डीप चेक (किसी भी नेस्टिंग लेवल के लिए)
function hasFalseValue(obj) {
if (obj === false) return true;
if (obj === null || typeof obj !== 'object') return false;
if (Array.isArray(obj)) {
return obj.some(hasFalseValue);
}
return Object.values(obj).some(hasFalseValue);
}
console.log(hasFalseValue(details)); // true
console.log(hasFalseValue({ a: { b: { c: true } } })); // false
console.log(hasFalseValue({ a: [1, 2, false] })); // true
विधि 4: JSON.stringify ट्रिक (त्वरित जांच)
// केवल प्रिमिटिव false के लिए (ऑब्जेक्ट false नहीं)
const hasFalse = JSON.stringify(details).includes('false');
console.log(hasFalse); // true
// चेतावनी: "false" स्ट्रिंग भी मिल जाएगी
console.log(JSON.stringify({ a: "false" }).includes('false')); // true (गलत पॉजिटिव)
चलाने का तरीका
node check-false.js
आउटपुट
false
(मूल उदाहरण में सभी true थे, इसलिए false आउटपुट हुआ)
संशोधित उदाहरण आउटपुट (एक false के साथ)
true
सारांश
| स्थिति | बेस्ट मेथड |
|---|---|
| ज्ञात स्ट्रक्चर | flatMap().some() |
| अज्ञात/डीप नेस्टिंग | रिकर्सिव फंक्शन |
| त्वरित जांच | JSON.stringify().includes('false') |
| पहला false ढूंढें | find() या रिकर्सिव |