Freecodecamp: अलाव: मिथ्या बाउंसर - विरोधाभासी निर्देश

को निर्मित 15 दिस॰ 2015  ·  3टिप्पणियाँ  ·  स्रोत: freeCodeCamp/freeCodeCamp

चैलेंज बोनफायर: फाल्सी बाउंसर में एक समस्या है।
उपयोगकर्ता एजेंट है: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36

फाल्सी बाउंसर के निर्देश इंगित करते हैं कि एक फाल्सी मान NaN सहित विभिन्न प्रकार का होता है।
पहले परीक्षण के लिए आवश्यक है कि फ़ंक्शन कॉल बाउंसर ([7, "खाया", "", झूठा, 9]) वापस आ जाए [7, "खाया", 9]
हालांकि ध्यान दें कि स्ट्रिंग "खाया" NaN है, इसलिए इसे परिणामी सरणी में शामिल नहीं किया जाना चाहिए।

इसलिए ऐसा लगता है कि एक ही कोड ब्लॉक के साथ टेस्ट 1 और टेस्ट 3 पास करने का कोई तरीका नहीं है, वे परस्पर अनन्य उत्तर हैं।

मेरा कोड:

function bouncer(arr) {

  arr = arr.filter(function(val){
    if (val === false || val === null || val === undefined || val === "" || val === 0 || isNaN(val)) return false;
    return true;
  });

  return arr;
}

bouncer([false, null, 0, NaN, undefined, ""]);

सबसे उपयोगी टिप्पणी

और, तकनीकी रूप से, आप अपने लिए ऐसा करने के लिए Boolean फ़ंक्शन का उपयोग कर सकते हैं, ताकि समस्या हल हो सके:
return arr.filter(Boolean) , चूंकि बूलियन सत्य/गलत मान लेता है और सही या गलत लौटाता है।

सभी 3 टिप्पणियाँ

अगर मैंने यहां कुछ गलत समझा है तो अग्रिम क्षमा करें।

NaN एक वास्तविक मूल्य है जो एक चर हो सकता है और यह झूठा है। "ate" एक संख्या नहीं है और isNan("ate") सही लौटेगा, लेकिन मूल्य "ate" गलत नहीं है, केवल NaN का विशिष्ट मान गलत है। झूठे मूल्यों की सुंदरता (और कभी-कभी बग स्रोत) यह है कि आपको उनके कोड की तरह स्पष्ट रूप से देखने की आवश्यकता नहीं है, क्योंकि जब भी एक बूलियन मान की आवश्यकता होती है तो जावास्क्रिप्ट उन्हें झूठे के बूलियन मान के लिए मजबूर कर देगा। इसका मतलब यह है कि आपके फ़िल्टर फ़ंक्शन के लिए कोड बस यह हो सकता है:

arr = arr.filter(function(val){
  return val;
});

धन्यवाद और खुश कोडिंग!

और, तकनीकी रूप से, आप अपने लिए ऐसा करने के लिए Boolean फ़ंक्शन का उपयोग कर सकते हैं, ताकि समस्या हल हो सके:
return arr.filter(Boolean) , चूंकि बूलियन सत्य/गलत मान लेता है और सही या गलत लौटाता है।

क्या यह पृष्ठ उपयोगी था?
0 / 5 - 0 रेटिंग्स