किसी तत्व को सरणी की शुरुआत में धकेलने का सबसे आसान तरीका क्या है?


207

मैं ऐसा करने के लिए एक पंक्ति के तरीके के बारे में नहीं सोच सकता। क्या उधर रास्ता है?

जवाबों:


387

unshiftविधि का उपयोग करने के बारे में क्या ?

ary.unshift(obj, ...) → ary
स्वयं के सामने की ओर वस्तुओं को रोकता है, अन्य तत्वों को ऊपर की ओर ले जाता है।

और उपयोग में:

irb>> a = [ 0, 1, 2]
=> [0, 1, 2]
irb>> a.unshift('x')
=> ["x", 0, 1, 2]
irb>> a.inspect
=> "["x", 0, 1, 2]"

वही, जिसकी मुझे तलाश थी, नाम भूल गया।
एड एस।

1
मैंने देखा, बस उन्हें एक त्वरित स्कैन में नहीं देखा था।
एड एस।

1
@ ईडी: पृष्ठ के शीर्ष पर विधि सूची बेहतर स्वरूपित की जा सकती है, यह नेत्रहीन स्कैन करना बहुत मुश्किल है क्योंकि यह है। मैंने इसे पाया क्योंकि मुझे पता था कि विधि का नाम मैं देख रहा था :)
म्यू बहुत छोटा है

118
यदि आपको बीच shift- बीच में याद रखने में परेशानी हो रही है unshiftऔर जो सरणी में जोड़ता है और जो सरणी से निकालता है, तो मानसिक रूप से नामों से एक 'एफ' छोड़ दें और आपको दिशा के रूप में एक ऑल-बहुत स्पष्ट तस्वीर मिलती है। (और फिर आपको यह याद रखना होगा कि ये विधियाँ सरणी के "अंत" पर काम नहीं करती हैं;)
फ्रॉग्ज़

3
@Phrogz मैंने वर्षों में सबसे अच्छी मेनेमोनिक तकनीक सुनी है! :-)
konung

47

आप उपयोग कर सकते हैं insert:

a = [1,2,3]
a.insert(0,'x')
=> ['x',1,2,3]

जहां पहला तर्क इंडेक्स डालने का है और दूसरा मान है।


23
array = ["foo"]
array.unshift "bar"
array
=> ["bar", "foo"]

चेतावनी दी है, यह विनाशकारी है!



11

रूबी 2.5.0 के बाद से, ऐरे जहाजों को prepend विधि के साथ (जो कि unshiftविधि के लिए सिर्फ एक उपनाम है )।


1
यह भी रूबी 2.4.4p296 के साथ काम करता है, तो शायद माणिक 2.4 के साथ?
ओब्रोमियोस

9

आप methodsolverरूबी कार्यों को खोजने के लिए उपयोग कर सकते हैं ।

यहाँ एक छोटी स्क्रिप्ट है,

require 'methodsolver'

solve { a = [1,2,3]; a.____(0) == [0,1,2,3] }

इस प्रिंट को चला रहा है

Found 1 methods
- Array#unshift

आप का उपयोग कर स्थापित कर सकते हैं Methodolver

gem install methodsolver

कूल, नहीं लगता था कि यह LOL
Marko Avlijaš

irb> require 'methodsolver'कारण LoadError: cannot load such file -- method_source... से /var/lib/gems/1.9.1/gems/methodsolver-0.0.4/lib/methodsolver.rb:2। रूबी 1.9.3p484, irb 0.9.6, Ubuntu 14.
केमिली गौडेय्यून

1
pryइसके बजाय का उपयोग करने का प्रयास करेंirb
अकुंय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.