2010-02-04 13 views

उत्तर

16
var foo = myarray[myarray.length - 1]; 

पसंदीदा शब्द है, तत्व है बल्कि कुंजी से।

संपादित करें: या क्या आपका अंतिम सूचकांक है? वह myarray.length - 1 है। ध्यान रखें, जावास्क्रिप्ट सरणी को केवल संख्यात्मक रूप से अनुक्रमित किया जा सकता है (हालांकि सरणी भी वस्तुएं हैं, जो कुछ भ्रम पैदा करती हैं)।

+0

यह गलत हो सकता है, तो आप उस पोस्ट पर एक नजर है चाहिए। – user198729

+0

क्या "गलत हो सकता है"? –

+4

@ user198729 जावास्क्रिप्ट में Arrays PHP से अलग काम करते हैं। PHP उन्हें स्पैस एरे के रूप में लागू करता है, यही कारण है कि पहले/अंतिम तत्व की अनुक्रमणिका हमेशा 0/लेन -1 नहीं होती है। जावास्क्रिप्ट में सभी सरणी घने सरणी, शून्य-आधार, पूरी तरह से आबादी वाले (शायद अपरिभाषित) इंडेक्स तत्व 0 से। लम्बाई -1 होते हैं। – nicerobot

2

एक सरणी के अंतिम कुंजी हमेशा arr.length-1 है के रूप में सरणियों हमेशा कुंजी 0 के साथ शुरू:

var arr = new Array(3); // arr === [], arr.length === 3 
arr.push(0);    // arr === [undefined, undefined, undefined, 0], arr.length === 4 
arr[arr.length-1]  // returns 0 

var arr = [];   // arr === [], arr.length === 0 
arr[3] = 0;    // arr === [undefined, undefined, undefined, 0], arr.length === 4 
arr[arr.length-1]  // returns 0 
4

यदि यह एक फ्लैट सरणी है, यह करना होगा:

return array.length - 1; 

हालांकि, अगर आपके पास सहयोगी सरणी है, आपको इसके माध्यम से कुंजी और लूप जानना होगा। कृपया ध्यान दें कि जावास्क्रिप्ट को "सहयोगी सरणी" जैसी कोई चीज़ नहीं है, क्योंकि जावास्क्रिप्ट में अधिकांश तत्व वस्तुएं हैं।

अस्वीकरण: जावास्क्रिप्ट में सहयोगी सरणी का उपयोग generally not a good practice है और समस्याएं पैदा कर सकता है।

var x = new Array(); 
x['key'] = "value"; 
for (i in x) 
{ 
    if (i == 'key') 
    { 
     alert ("we got "+i); 
    } 
} 
+1

'ऐरे' का उपयोग क्यों करें? आप इसकी सरणी का उपयोग नहीं कर रहे हैं (यानी जादू 'लंबाई' संपत्ति) ताकि आप 'ऑब्जेक्ट' का भी उपयोग कर सकें। इसके अलावा, जावास्क्रिप्ट स्पेक 'इन ... लूप' का उपयोग करते समय चाबियों के क्रम के बारे में कोई गारंटी नहीं देता है, इसलिए "आखिरी कुंजी" –

+0

जैसी कोई चीज़ नहीं है, उदाहरण के लिए, मैंने लम्बाई प्रॉपर्टी का उपयोग किया। चूंकि यह संपत्ति सहयोगी सरणी पर उपलब्ध नहीं है, इसलिए मैंने दूसरा उदाहरण जोड़ा, जो क्लीरी "अनुरूपित अंतिम कुंजी" के उपयोग के मामले को प्रदर्शित करता है।चूंकि ओपी अंतिम कुंजी का नाम जान लेगा, इसलिए उपर्युक्त विधि के साथ वास्तविक तत्व प्राप्त करना संभव होगा। –

+0

पुन:। लंबाई संपत्ति, मैं दूसरे उदाहरण का जिक्र कर रहा था, पहले नहीं। –

2

गरीब अंग्रेजी के लिए पहली बार खेद है। मान लें कि आपकी सरणी संख्या प्रारूप में स्ट्रिंग कुंजियों के साथ "कुंजी संबद्ध सरणी" है। आपको 3 चरण की आवश्यकता होगी: सभी सरणी कुंजी प्राप्त करें। सरणी कुंजी को पूर्णांक में कनवर्ट करें। अधिकतम या लंबाई या कोई अन्य कुंजी गुण प्राप्त करें।

stringKeys= Object.keys(keyValueArray);//get keys of array 
integerKeys=stringKeys.map(Number);//convert to integer 
mx=Math.max.apply(integerKeys);//get max 
len=stringKeys.length;//get length 

आशा मैं

+0

तब मूल प्रश्न का उत्तर देने के लिए जो मुझे सहयोगी सरणी में आखिरी कुंजी है: स्ट्रिंगकेज़ [लेन -1] या यदि आप एक पूर्णांक पूर्णांक चाहते हैं [लेन -1]। –

0
Math.max(...[...myArray.keys()]); 

मदद की यहाँ myArray एक सरणी का नाम है।

यह आपके निर्दिष्ट प्रश्न के आधार पर एक समाधान है। सरणी मानना ​​एक एकल आयामी सरणी है या सभी सरणी कुंजी संख्यात्मक हैं।

पुस्तकें: Math.max, Array.prototype.keys(), Iterators and generators

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