2011-09-13 5 views
91

कॉफीस्क्रिप्ट में एक ऐरे के लिए मूल्य जोड़ने का निर्धारित तरीका क्या है? मैंने प्रगप्रोग कॉफीस्क्रिप्ट बुक की जांच की है, लेकिन यह केवल बनाने, टुकड़ा करने और छेड़छाड़ करने, और पुनरावृत्ति करने, लेकिन संलग्न नहीं होने पर चर्चा करता है।कॉफीस्क्रिप्ट में आप एक ऐरे के लिए मूल्य कैसे जोड़ते हैं?

उत्तर

180

अच्छा पुराना push अभी भी काम करता है।

x = [] 
x.push 'a' 
+1

बहुत बढ़िया। धन्यवाद। –

+9

[PragProg पुस्तक] के लेखक (http://pragprog.com/book/tbcoffee/coffeescript) यहां। Thilo के जवाब के लिए +1। मैं पुस्तक में 'ऐरे' प्रोटोटाइप विधियों को कवर नहीं करना चाहता था, क्योंकि वहां पहले से ही बहुत अच्छे जावास्क्रिप्ट दस्तावेज़ हैं। उदाहरण के लिए, https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array#Methods_2 –

+0

क्या हमारे पास कोई ऑब्जेक्ट है, न कि कोई चरित्र? –

47

सूची समझों का उपयोग करना बेहतर है।

बल्कि इस से उदाहरण के लिए:

things = [] 
for x in list 
    things.push x.color 

इस बजाय कार्य करें:

things = (x.color for x in list) 
+23

वह सूची से मूल्यों में मूल्यों को जोड़ता नहीं है। यह चीजों को सरणी पूरी तरह से बदल देता है। मैंने अभी भी इसका परीक्षण किया। – ajsie

+0

ठीक है, निश्चित रूप से AJIie, आप सही हैं, यह इसे प्रतिस्थापित करता है, इसे प्रतिस्थापित नहीं करता है। मुद्दा यह है कि, आमतौर पर जब आप धक्का दे रहे होते हैं, तो आप अक्सर कुछ ** ** एक सरणी समझ की तरह ** कर रहे हैं। सभी मामलों में, स्वीकार्य रूप से नहीं, लेकिन बहुत समय। – suranyami

+5

थिलो का जवाब सही है - नीचे स्क्रॉल करें! – micapam

2

आप कॉल चेनिंग रहे हैं तो आप संलग्न यह की दूरी के बजाय सरणी वापस जाने के लिए चाहते हैं। इस मामले में आप .concat ([newElement]) का उपयोग कर सकते हैं

[newElement] होना चाहिए क्योंकि कॉन्सट एक एरे की अपेक्षा कर रहा है जैसा कि इसके अनुरूप है। कुशल नहीं है लेकिन सही सेटिंग में अच्छा लगता है।

+0

चेनिंग कॉल एक स्टाइलिश चीज है जो आप कर सकते हैं, जैसा कि आपने कहा है कि "विधि कुशल नहीं है" - 'concat' सरणी ए + सरणी के तत्वों से निर्मित एक नई सरणी देता है। ऑब्जेक्ट्स के संदर्भों को इतने सारे बदलावों में रखा जाता है किसी भी एरे में संदर्भित ऑब्जेक्ट ए, एरे बी या कॉन्सट परिणाम अन्य सरणी में भी दिखाई देगा। – SidOfc

संबंधित मुद्दे