हमारे पास ऐसे तत्वों की एक सरणी है जिनमें सत्य और असत्य दोनों मान शामिल हैं। हमारा काम एक फ़ंक्शन लिखना है जो उन तत्वों के सूचकांक के साथ एक सरणी देता है जो मूल सरणी में NaN हैं।
NaN!==NaN
NaN का डेटाटाइप वास्तव में संख्या है। यद्यपि NaN एक मिथ्या मान है, लेकिन इसकी एक विशिष्ट संपत्ति है जो किसी अन्य डेटाटाइप या चर के पास नहीं है। यह है कि व्यंजक NaN ===NaN यील्डझूठा है। और केवल NaN के मामले में यह झूठा है।
इसलिए, हम इस व्यवहार का उपयोग अपने अच्छे के लिए कर सकते हैं और NaN वैल्यू इंडेक्स चुन सकते हैं। इसके लिए कोड होगा -
const arr = [7, 1, "123abc", undefined, NaN, 78, NaN, null, "aes", NaN, '', null, NaN]; const pickNaN = (arr) => { return arr.reduce((acc, val, ind) => { if(val !== val){ acc.push(ind); }; return acc; }, []); }; console.log(pickNaN(arr));
isNaN() / Number.isNaN()
का उपयोग करनाisNaN () फ़ंक्शन इस तथ्य के आधार पर सही या गलत लौटाता है कि प्रदान किया गया मान isa NaN है या नहीं या किसी NaN के लिए मजबूर किया जा सकता है। जबकि Number.isNaN() फ़ंक्शन केवल तभी सही होता है जब प्रदान किया गया मान वास्तव में NaN हो।
तो, Number.isNaN () isNaN () पर NaN के लिए जाँच करने का एक विश्वसनीय तरीका है। कोड आउटपुट में अंतर नीचे दिखाया गया है।
उदाहरण
const arr = [7, 1, "abc", undefined, NaN, 78, NaN, null, "aes", NaN, '', null, NaN]; const pickNaN = (arr) => { return arr.reduce((acc, val, ind) => { if(Number.isNaN(val)){ acc.reliableWay.push(ind); }; if(isNaN(val)){ acc.unreliableWay.push(ind); } return acc; }, { reliableWay: [], unreliableWay: [] }); }; console.log(pickNaN(arr));
यह कोड दो सरणियाँ तैयार करता है, एक Number.isNaN () और एक isNaN () का उपयोग करके।
आउटपुट
आउटपुट होगा -
{ reliableWay: [ 4, 6, 9, 12 ], unreliableWay: [ 2, 3, 4, 6, 8, 9, 12] }
हम स्पष्ट रूप से देख सकते हैं कि कैसे isNaN () ने NaN के रूप में कई गैर-NaN मानों की गणना की है। इसलिएNumber.isNaN() अधिक विश्वसनीय तरीका है।