2010-11-23 13 views
8

मैं एक सरणी अनुक्रमिक सरणी कुंजी है और मैं बेतरतीब ढंग से कुंजियों में से एक का चयन करना है कि ... क्या ऐसा करने के लिए सबसे अच्छा तरीका क्या है?अनियमित जावास्क्रिप्ट सरणी कुंजी का चयन

उत्तर

13

math.random() 0 और 1.

var key = Math.floor(Math.random() * arr.length); 
+9

@ डेनिस गोर्बाचेव का बयान गलत है। Math.random() 0 विशेष सहित 1 देता है, जिसका अर्थ कभी नहीं 1.00 है। यदि ऐसा होता है, तो लौटाई गई अनुक्रमणिका सरणी की लंबाई से अधिक होगी। – Kelly

+0

Omg, तुम सही हो। –

2

बीच की एक संख्या उत्पन्न होगा केवल सरणी लंबाई का उपयोग कर वास्तव में कभी अंतिम आइटम का चयन करने में परिणाम होगा JavaScript random() Method पर एक नज़र और Generating a random number in JavaScript

-16

है सरणी में, अत्यंत दुर्लभ स्थिति को छोड़कर जब चयनित यादृच्छिक संख्या 1.0000 है। Arr.length में .99999 जोड़ने के लिए बेहतर:

var key = Math.floor(Math.random() * (arr.length + .999999)) 
+4

यह एक संख्या पिछले सूचकांक की तुलना में अधिक वापस जाने के लिए की क्षमता है। – Kelly

+0

math.random() से पहले 1 (कभी 1) 0 से कहीं एक नंबर देता है। [0, 1) के रूप में लिखा गया। इसके अलावा, सरणी लंबाई में 0.9999999 जोड़ने बाउंड त्रुटि के बाहर एक संभव कारण बनता है। चुने गए उत्तर को देखो –

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