2013-01-18 14 views
26

से स्लाइस सरणी इस परिवर्तन को कैसे करें?एन से अंतिम तत्व

["a","b","c","d","e"] // => ["c", "d", "e"] 

मैं सोच रहा था slice यह कर सकते हैं कि, लेकिन ..

["a","b","c","d","e"].slice(2,-1) // [ 'c', 'd' ] 
["a","b","c","d","e"].slice(2,0) // [] 

उत्तर

52

दूसरा तर्क का उपयोग न करें:

Array.slice(2); 

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice

यदि अंत छोड़ा जाता है, तो अनुक्रम के अंत तक अर्क को टुकड़ा करें।

+0

ठीक है ... लेकिन अगर मैं भविष्यवाणी नहीं कर सकता कि टुकड़ा का अंत परिभाषित किया जाएगा या नहीं। पायथन में हमारे पास अंत तक टुकड़ा करने के लिए str [start: none] है। मैं इसे जावास्क्रिप्ट पर समान रूप से कैसे कर सकता हूं? – yota

+0

@yota यदि आप सरणी की लंबाई जानते हैं तो आप इसे दूसरी तर्क के रूप में पारित कर सकते हैं: 'arr.slice (2, arr.length)'। यदि दूसरा तर्क सरणी की लंबाई से अधिक है, तो यह अनुक्रम के अंत तक 'प्रारंभ' वापस कर देगा। यदि यह आपके लिए काम नहीं कर रहा है, तो आपको एक कथन की आवश्यकता होगी। –

4

बस .. के रूप में आप सरणी से डेटा के बाकी चाहते शुरू करने सूचकांक देना

["a","b","c","d","e"].splice(2) => ["c", "d", "e"] 
4

@insomniac द्वारा जवाब से संबंधित एक महत्वपूर्ण विचार है कि splice और slice दो पूरी तरह से अलग कर रहे हैं कार्यों, मुख्य अंतर किया जा रहा है के साथ:

  • splice मूल सरणी manipulates।
  • slice मूल सरणी का उप-सेट देता है, मूल सरणी बिना छूटे रहती है।

देखें: http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html अधिक जानकारी के लिए।

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