2012-03-09 14 views
6

मैं इस तरह एक सरणी है:मैं सरणी तत्व से एक चरित्र को कैसे हटा सकता हूं?

["ee", "3/4\"", "22\"", "22\""] 

और मैं या तो कॉमा, \"&#34 साथ इतना है कि सरणी इस तरह दिखता है हटाने या बदलने के लिए कि चाहते हैं:

["ee", "3/4", "22", "22"] 

या इस :

["ee", "3/4&#34", "22&#34", "22&#34"] 

कारण यह है कि मैं जावास्क्रिप्ट के लिए रूबी से कि सरणी पारित करने के लिए कोशिश कर रहा हूँ, लेकिन मैं एक "यू बार आ रही है है nterminated स्ट्रिंग निरंतर त्रुटि "और मैं बस इसके चारों ओर एक रास्ता नहीं पता कर सकते हैं!

यह है कि मैं क्या जावास्क्रिप्ट को जानकारी पारित करने के लिए उपयोग कर रहा हूँ है:

cut_list="from_ruby_cut(\""+c[1]+"\")" 
+2

क्या कोई विशेष कारण है कि आप JSON का उपयोग नहीं कर रहे हैं? –

+1

हां .. मुझे नहीं पता कि जेएसओएन क्या है ... :) मैं इस प्रोग्रामिंग सामग्री पर बहुत नया हूं और इसलिए मेरा ज्ञान बहुत ही सीमित है, दुर्भाग्य से। मैं JSON में देखूंगा और देख सकता हूं कि इससे मदद मिल सकती है या नहीं। – JoMojo

+0

क्या '& #' इकाई अर्धविराम से समाप्त नहीं होनी चाहिए? (उदा।, टाइपिंग के लिए " ') –

उत्तर

10

एक संशोधित संस्करण के साथ, इस तरह के अवांछित चरित्र की जगह के रूप में एक सरणी में प्रत्येक तत्व बदलने के लिए, आप map! समारोह का उपयोग कर सकते । ब्लॉक के अंदर, अवांछित " वर्ण को प्रतिस्थापित करने के लिए gsub का उपयोग करें।

array = ["ee", "3/4\"", "22\"", "22\""] 

array.map!{ |element| element.gsub(/"/, '') } 
array 
#=> ["ee", "3/4", "22", "22"] 

array.map!{ |element| element.gsub(/"/, '&#34') } 
array 
#=> ["ee", "3/4&#34", "22&#34", "22&#34"] 

हालांकि, अगर आप भी c[1].inspect बजाय c[1] का उपयोग करते समय आपकी जावास्क्रिप्ट स्ट्रिंग का निर्माण करके अपनी समस्या को हल करने में सक्षम हो सकता है। यदि आप निरीक्षण का उपयोग करते हैं, तो यह स्ट्रिंग के अंदर उद्धरण से बचने के लिए संलग्न संलग्न उद्धरणों के साथ स्ट्रिंग मुद्रित करेगा, और बैकस्लैश।

+0

+1। – NullRef

+0

का उपयोग कर .inspect काम किया, शुद्ध जिज्ञासु !! और दुख की बात है कि मेरे लिए बहुत ही सरल समाधान ... मैं आपके बाकी सुझाव के साथ खेलूँगा क्योंकि यह किसी अन्य समय काम में आ सकता है। धन्यवाद एमिली! – JoMojo

0

एरे को संशोधित करने के तरीके को map और gsub का उपयोग करने के लिए।

a = ["ee", "3/4\"", "22\"", "22\""] 
a.map{|e| e.gsub(/"/,'')} 
=> ["ee", "3/4", "22", "22"] 

या

a.map{|e| e.gsub(/"/,'&#34')} 
=> ["ee", "3/4&#34", "22&#34", "22&#34"] 

हालांकि, मुझे यकीन है कि यह सबसे अच्छा तरीका है अपने अंतिम लक्ष्य को पूरा करने के लिए है नहीं कर रहा हूँ।

+0

मुझे यकीन नहीं है कि यह सबसे अच्छा तरीका है लेकिन हे, यह कुछ नया सीखने में मजेदार है। :) आपके उत्तर NullRef के लिए धन्यवाद। – JoMojo

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