Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

क्या JavaScript Array.sort() विधि शफलिंग के लिए सही है?

नहीं, Array.sort() के साथ रैंडम कम्पेरेटर सही शफल नहीं करता (पक्षपाती वितरण)।

सही तरीका: फिशर-येट्स (नुथ) शफल

function shuffleArray(arr) {
  var tmp, current;
  var top = arr.length;
  if (top) while (--top) {
    current = Math.floor(Math.random() * (top + 1));
    tmp = arr[current];
    arr[current] = arr[top];
    arr[top] = tmp;
  }
  return arr;
}

क्यों sort() गलत है: कम्पेरेटर फंक्शन को ट्रांजिटिव होना चाहिए, लेकिन रैंडम कम्पेरेटर नहीं होता। परिणाम गैर-एकरूप वितरण देता है।

ES6+ संक्षिप्त: arr.sort(() => Math.random() - 0.5) - अभी भी पक्षपाती, उत्पादन में उपयोग न करें।

  1. JavaScript Array.keys(): एरे कीज (इंडेक्स) प्राप्त करें JavaScript Array.keys(): एरे कीज (इंडेक्स) प्राप्त करें

    Array.prototype.keys() मेथड एक नया एरे इटरेटर ऑब्जेक्ट लौटाता है जिसमें मूल एरे के प्रत्येक इंडेक्स के लिए कीज (0, 1, 2...) होती हैं। यह मानों के बजाय इंडेक्स पर पुनरावृत्ति के लिए उपयोगी है। उदाहरण { fillEle.innerHTML = ; for (let x of keysIter) { fillEle.innerHTML

  1. JavaScript Array.from(): एरे-लाइक से एरे बनाएं JavaScript Array.from(): एरे-लाइक से एरे बनाएं

    Array.from() एक स्थिर मेथड है जो एरे-लाइक या इटरेटर ऑब्जेक्ट्स से एक नया, शैलो-कॉपीड एरे इंस्टेंस बनाता है। यह arguments, NodeList, Set, Map, स्ट्रिंग्स, आदि को एरे में बदलने का मानक तरीका है। उदाहरण { const arr = Array.from(str); fillEle.innerHTML = एरे: + arr.join(, ); })

  1. JavaScript Sort() मेथड JavaScript Sort() मेथड

    JavaScript Sort() मेथड का उपयोग ऐरे को सॉर्ट करने के लिए किया जाता है। सॉर्टिंग का क्रम वर्णमाला, न्यूमेरिक, आरोही या अवरोही हो सकता है।उदाहरण<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="