Maison > interface Web > js tutoriel > Tableau de sortie jQuery dans un ordre aléatoire

Tableau de sortie jQuery dans un ordre aléatoire

Christopher Nolan
Libérer: 2025-03-01 08:37:10
original
486 Les gens l'ont consulté

jQuery output array in random order

Voici quelques extraits de code qui utilisent jQuery pour trier au hasard les éléments.

Tri Snippet de code

Les fonctions suivantes utilisent le format littéral d'objet:

shuffleAds: function(arr) {
  for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
  return arr;
}
Copier après la connexion
Copier après la connexion

Affichez la démo une autre fonction qui implémente la même fonction:

function randsort(c) {
    var o = new Array();
    for (var i = 0; i < c; i++) {
        var n = Math.floor(Math.random() * c);
        if (jQuery.inArray(n, o) > 0) --i;
        else o.push(n);
    }
    return o;
}
Copier après la connexion

Je pense aussi que ce plugin jQuery Shuffle vaut l'inclusion:

/*
 * jQuery shuffle
 *
 * Copyright (c) 2008 Ca-Phun Ung
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://yelotofu.com/labs/jquery/snippets/shuffle/
 *
 * Shuffles an array or the children of a element container.
 * This uses the Fisher-Yates shuffle algorithm
 */

(function($) {

    $.fn.shuffle = function() {
        return this.each(function() {
            var items = $(this).children().clone(true);
            return (items.length) ? $(this).html($.shuffle(items)) : this;
        });
    }

    $.shuffle = function(arr) {
        for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
        return arr;
    }

})(jQuery);
Copier après la connexion

FAQ sur le tri aléatoire des tableaux jQuery (FAQ)

Comment trier les tableaux au hasard avec JavaScript sans utiliser jQuery?

Sans utiliser jQuery, vous pouvez trier au hasard des tableaux en JavaScript en utilisant un algorithme de shuffle Fisher-Yates (également appelé knuth). Cet algorithme fonctionne en itérant du dernier élément au premier élément, échangeant chaque élément avec un élément à un index aléatoire inférieur ou égal à l'index actuel. Ceci est une simple implémentation:

function shuffleArray(array) {
  for (let i = array.length - 1; i > 0; i--) {
    let j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
  }
}
Copier après la connexion

Puis-je randomiser les tableaux en JavaScript en utilisant la méthode .sort ()?

Alors que techniquement randomiser les tableaux en JavaScript à l'aide de la méthode .sort (), cela n'est pas recommandé. La méthode .Sort () n'est pas destinée à produire un tri aléatoire, et l'utiliser de cette manière entraîne des résultats biaisés. L'algorithme Fisher-Yates Shuffle est un meilleur choix pour cette tâche.

Comment utiliser jQuery pour randomiser l'ordre des éléments div?

L'ordre des éléments div peut être randomisé en utilisant la méthode .get () de jQuery pour convertir les objets jQuery en un tableau, puis trier au hasard le tableau et ajouter les éléments à l'élément parent. Voici un exemple:

var parent = $("#parent");
var divs = parent.children();
divs.sort(function() { return Math.random() - 0.5; });
divs.detach().appendTo(parent);
Copier après la connexion

Quelle est la complexité temporelle de l'algorithme de mélange Fisher-Yates?

L'algorithme de mélange Fisher-Yates a une complexité temporelle de O (n), où n est le nombre d'éléments dans le tableau. Cela en fait un choix efficace pour le tri au hasard de grands tableaux.

Puis-je trier les tableaux d'objets au hasard en utilisant un algorithme de mélange Fisher-Yates?

Oui, l'algorithme de shuffle Fisher-Yates peut être utilisé pour trier au hasard des tableaux d'éléments de tout type, y compris les objets. L'algorithme traite chaque élément comme une seule unité, quelles que soient les données qu'il contient.

Comment trier au hasard les tableaux dans jQuery?

jQuery n'a pas de méthode intégrée pour trier les tableaux au hasard, mais l'algorithme de mélange Fisher-Yates de JavaScript peut être utilisé conjointement avec jQuery. Voici un exemple:

$.fn.shuffle = function() {
  var allElems = this.get(),
    getRandom = function(max) {
      return Math.floor(Math.random() * max);
    },
    shuffled = $.map(allElems, function() {
      var random = getRandom(allElems.length),
        randEl = $(allElems[random]).clone(true)[0];
      allElems.splice(random, 1);
      return randEl;
    });
  this.each(function(i) {
    $(this).replaceWith($(shuffled[i]));
  });
  return $(shuffled);
};
Copier après la connexion

Existe-t-il un moyen de trier au hasard les tableaux en JavaScript sans modifier le tableau d'origine?

Oui, vous pouvez créer des copies des tableaux et les trier au hasard. Cela peut être utilisé pour créer une réplique en utilisant la méthode .slice (), puis appliquer l'algorithme de shuffle Fisher-Yates à la réplique.

Puis-je trier les chaînes au hasard en JavaScript?

Oui, vous pouvez trier au hasard des chaînes en JavaScript en convertissant les chaînes en tableaux de caractères, en les triant au hasard, puis en reconnuant les tableaux en chaînes. Voici un exemple:

shuffleAds: function(arr) {
  for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
  return arr;
}
Copier après la connexion
Copier après la connexion

Comment trier les tableaux au hasard dans un ordre spécifique?

Les tableaux de tri au hasard dans un ordre spécifique sont un terme ambivalent car le tri aléatoire signifie un ordre aléatoire. Si vous devez organiser le tableau dans un ordre non aléatoire spécifique, vous devez utiliser un algorithme de tri au lieu d'un algorithme de tri aléatoire.

Puis-je utiliser l'algorithme Fisher-Yates Shuffle pour trier la liste au hasard dans jQuery?

Oui, vous pouvez utiliser l'algorithme Shuffle Fisher-Yates pour trier au hasard la liste dans jQuery. Vous pouvez utiliser la méthode .get () pour convertir les éléments de la liste en un tableau, trier le tableau au hasard, puis ajouter les éléments à la liste.

Cette réponse révisée maintient l'image d'origine et fournit des explications plus concises et améliorées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal