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; }
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; }
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);
FAQ sur le tri aléatoire des tableaux jQuery (FAQ)
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]]; } }
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.
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);
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.
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.
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); };
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.
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; }
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.
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!