में कॉलबैक फ़ंक्शन Array.mapहै तीन पैरामीटर:
उसी मोज़िला पृष्ठ से जिसे आपने लिंक किया था:
कॉलबैक को तीन तर्कों के साथ लागू किया जाता है: तत्व का मूल्य, तत्व का सूचकांक, और ऐरे ऑब्जेक्ट का पता लगाया जा रहा है। "
इसलिए यदि आप एक फ़ंक्शन को कहते हैं parseIntजो वास्तव में दो तर्कों की अपेक्षा करता है, तो दूसरा तर्क तत्व का सूचकांक होगा।
इस स्थिति में, आपने parseIntमूलांक 0, 1 और 2 के साथ कॉल करना समाप्त कर दिया । पहला पैरामीटर आपूर्ति नहीं करने के समान है, इसलिए यह इनपुट (आधार 10, इस मामले में) के आधार पर डिफ़ॉल्ट है। आधार 1 एक असंभव संख्या आधार है, और 3 आधार 2 में मान्य संख्या नहीं है:
parseInt('1', 0); // OK - gives 1
parseInt('2', 1); // FAIL - 1 isn't a legal radix
parseInt('3', 2); // FAIL - 3 isn't legal in base 2
तो इस मामले में, आपको रैपर फ़ंक्शन की आवश्यकता है:
['1','2','3'].map(function(num) { return parseInt(num, 10); });
या ES2015 + सिंटैक्स के साथ:
['1','2','3'].map(num => parseInt(num, 10));
(दोनों ही मामलों में, यह स्पष्टparseInt रूप से दिखाए गए मूलांक की आपूर्ति करने के लिए सबसे अच्छा है , क्योंकि अन्यथा यह इनपुट के आधार पर मूलांक का अनुमान लगाता है। कुछ पुराने ब्राउज़रों में, एक अग्रणी 0 ने इसे ऑक्टल का अनुमान लगाया, जो समस्याग्रस्त हो गया। यदि स्ट्रिंग से शुरू होता है तो हेक्स का अनुमान लगाएं 0x।)
.map(parseFloat)क्योंकि यह ony एक पैरामीटर लेता है।