Monday 15 September 2014

javascript - Randomly select pairs from an array -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 10 उत्तर
  • 8 उत्तरों

    मेरे पास एक सरणी है

    [1,2,3,4,5,6,7 , 8,9,10,11,12,13,14,15,16,17,18,19,20]

    मैं इन प्रविष्टियों में एक यादृच्छिक संख्या को पकड़ना चाहता हूं आदेश और उन्हें एक सीमा तक एक नई सरणी में धक्का दे।

    यानी उदाहरण के लिए यदि मैंने (5) दर्ज किया है - यह एक नई सरणी जैसे

    [1, 4, 7, 10, 12] < पी> मैंने कोशिश की

      var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19,20]; Var newArr = [], संख्या, रोल; // सरणी से संख्या को निकालने के लिए (var i = 0; i & lt; arr.length; i ++) {num = Math.floor (गणित.रेन्डम) * arr.length); newArr.push (आगमन [NUM]); रोल = एआररोसिस (संख्या, 1); }   

    लेकिन यह सचमुच वापस नहीं लौटाता है जिसके लिए मुझे आवश्यकता है क्योंकि मुझे रहने की व्यवस्था की आवश्यकता है मैं अंडरस्कोर का उपयोग कर रहा हूं, यदि वह मदद करता है?

    मुझे लगता है कि आप यही हासिल करना चाहते हैं विरल सरणियों के साथ काम करता है और मूल तत्वों का सूचकांक रखता है। एक गिनती विशेषता का उपयोग करना जो आपूर्ति की गई सरणी की लंबाई से बराबर या उससे अधिक है उस सरणी की प्रतिलिपि वापस करेगा।

    जावास्क्रिप्ट

      / * Jslint maxerr: 50, इंडेंट: 4, ब्राउज़र: सच, bitwise: true * / / * वैश्विक कंसोल * / (फ़ंक्शन () {"सख्त का उपयोग करें"; फ़ंक्शन customRand (सरणी, गणना) {var length = array.length , अनुक्रमणिका = [], परिणाम = [], मैं = 0, रैंड, अस्थायी; जबकि (i & lt; लंबाई) {यदि (ऑब्जेक्ट। प्रोटोटिप एचएसीओपीप्रॉपर्टी कॉल (एरे, आई)) {indexes.push (i); } I + = 1;} i = 0; लंबाई = इंडेक्स। लांघ; जबकि (i & lt; लंबाई) {rand = (गणित.रेंडम () * i) | 0; temp = इंडेक्स [i]; अनुक्रमणिका [i] = इंडेक्स [रैंड]; इंडेक्स [रैंड] = अस्थायी; आई + = 1;} इंडेक्स = इंडेक्ससएसस्लिस। (0, गिनती) .सोर्ट (फ़ंक्शन (ए, बी) {रिटर्न ए - बी;}); आई = 0 ; लंबाई = इंडेक्स। लांघ; जबकि (i & lt; लंबाई) {परिणाम [अनुक्रमणिका [i]] = सरणी [अनुक्रमणिका [i]]; i + = 1;} वापसी परिणाम;} var arr = [1, 2, 3 , 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1 9, 20]; console.log (कस्टमरांड (एआरएम, 5));} ( ));   

    चालू

No comments:

Post a Comment