Array.some() मेथड
some() जांचता है कि ऐरे में कम से कम एक एलिमेंट टेस्ट पास करता है या नहीं। एक भी पास होने पर true, सभी फेल होने पर false लौटाता है। every() का पूरक।
सिंटैक्स
array.some(callback(element, index, array), thisArg)
उदाहरण
<html> <body>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
var wages = [33000, 10000, 1000, 20000];
var salary = [3000, 9000, 14000, 10000];
function checkSal(wage) {
return wage >= 15000;
}
document.getElementById("demo1").innerHTML = wages.some(checkSal); // true
document.getElementById("demo2").innerHTML = salary.some(checkSal); // false
</script> </body> </html>
आउटपुट
true false
व्याख्या
wages: 33000 ≥ 15000 ✅ → तुरंतtrue(शॉर्ट-सर्किट)salary: सभी < 15000 ❌ →false
every() vs some() तुलना
| मेथड | true कब? | false कब? | शॉर्ट-सर्किट |
|---|---|---|---|
every() | सभी पास | एक भी फेल | पहला फेल पर रुकता है |
some() | एक भी पास | सभी फेल | पहला पास पर रुकता है |
आधुनिक उपयोग
<script>
var numbers = [1, 3, 5, 7, 9];
// कोई इवन है?
var hasEven = numbers.some(n => n % 2 === 0); // false
// कोई नेगेटिव है?
var hasNegative = numbers.some(n => n < 0); // false
// ऑब्जेक्ट्स में
var users = [
{name: "अमित", admin: false},
{name: "सुमन", admin: false},
{name: "रोहन", admin: true}
];
var hasAdmin = users.some(u => u.admin); // true
// खाली ऐरे
[].some(x => true); // false (कोई एलिमेंट नहीं)
</script>
व्यावहारिक उपयोग केस
<script> // 1. वैलिडेशन: कोई फील्ड खाली तो नहीं? var hasEmpty = formFields.some(field => !field.value.trim()); // 2. पर्मिशन: कोई आवश्यक रोल है? var canAccess = user.roles.some(role => requiredRoles.includes(role)); // 3. डुप्लीकेट जांच var hasDuplicate = arr.some((val, i, a) => a.indexOf(val) !== i); // 4. फीचर फ्लैग var isEnabled = features.some(f => f.enabled && f.name === 'darkMode'); </script>
महत्वपूर्ण नोट्स
- शॉर्ट-सर्किट - पहला ट्रूथी मिलते ही रुक जाता है (परफॉरमेंस)
- मूल ऐरे नहीं बदलता
- खाली ऐरे पर हमेशा
false - कॉलबैक को बूलियन लौटाना चाहिए (ट्रूथी/फाल्सी ऑटो-कन्वर्ट)