मेरे पास तारों की एक सरणी है। मैं सरणी में प्रत्येक स्ट्रिंग को ट्रिम करना चाहता हूं।क्यों '' '.trim() `सीधे' [] .map()` 'कॉलबैक काम नहीं गुजर रहा है?
मैं ''.trim()
साथ [].map()
का उपयोग कर काम करेगा सोचा ...
[' a', ' b ', 'c'].map(String.prototype.trim);
... लेकिन मेरे कंसोल ने कहा ...
TypeError: String.prototype.trim called on null or undefined
मैं अपने सरणी में null
या undefined
मान नहीं देख सकता।
String.prototype.trim()
और Array.prototype.map()
क्रोम 17 में परिभाषित किया गया है, जिसका मैं परीक्षण करने के लिए उपयोग कर रहा हूं।
यह क्यों काम नहीं करता है? मुझे लगता है कि मैंने कुछ स्पष्ट रूप से अनदेखा किया है।
मुझे एहसास है कि मैं वहां एक लूप या ड्रॉप कर सकता हूं। हालांकि, इस सवाल का मुद्दा यह नहीं है।
! मुझे पता था कि यह कुछ स्पष्ट होगा। मेरा दिमाग आज काम नहीं कर रहा है। धन्यवाद स्लेस। – alex
तो यह क्यों काम नहीं करता है?'['ए', 'बी', 'सी']। नक्शा (String.prototype.trim.apply); '... और यह' map() 'संदर्भ के बाहर क्यों काम करता है? 'String.prototype.trim ('a')' (ध्यान दें कि यह वास्तव में * काम नहीं करता है * - एक खाली स्ट्रिंग देता है - लेकिन यह कोई त्रुटि नहीं फेंकता है।) – nrabinowitz
@nrabinowitz: 'लागू करें' ' यह 'String.prototype.trim' तक बाध्य नहीं है - यह' अपरिभाषित 'या' शून्य 'या' विंडो' 'तक सीमित हो जाता है। (यही कारण है कि उन्होंने 'Function.bind() 'का आविष्कार किया।) – Ryan