Rumah > hujung hadapan web > tutorial js > Arahan output jQuery mengikut urutan rawak

Arahan output jQuery mengikut urutan rawak

Christopher Nolan
Lepaskan: 2025-03-01 08:37:10
asal
485 orang telah melayarinya

jQuery output array in random order

Berikut adalah beberapa coretan kod yang menggunakan jQuery untuk menyusun item secara rawak.

Sorting kod snippet

Fungsi berikut Gunakan Format Literal Objek:

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;
}
Salin selepas log masuk
Salin selepas log masuk
Lihat demo fungsi lain yang melaksanakan fungsi yang sama:

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;
}
Salin selepas log masuk
Saya juga fikir plugin shuffle jQuery ini bernilai termasuk:

/*
 * 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);
Salin selepas log masuk
Soalan Lazim Mengenai Penyortiran Rawak JQuery Arrays (FAQ)

bagaimana untuk menyusun array secara rawak dengan JavaScript tanpa menggunakan jQuery?

Tanpa menggunakan jQuery, anda boleh menyusun array secara rawak dalam JavaScript menggunakan algoritma shuffle Fisher-Yates (juga dikenali sebagai Knuth). Algoritma ini berfungsi dengan meleleh dari elemen terakhir ke elemen pertama, bertukar setiap elemen dengan elemen pada indeks rawak kurang daripada atau sama dengan indeks semasa. Ini adalah pelaksanaan yang mudah:

Bolehkah saya mengendalikan array dalam javascript menggunakan kaedah .sort ()?
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]];
  }
}
Salin selepas log masuk

Walaupun secara teknikal secara rawak array dalam JavaScript menggunakan kaedah .sort (), ini tidak disyorkan. Kaedah .sort () tidak bertujuan untuk menghasilkan penyortiran rawak, dan menggunakannya dengan cara ini menghasilkan hasil yang berat sebelah. Algoritma Shuffle Fisher-Yates adalah pilihan yang lebih baik untuk tugas ini.

Bagaimana menggunakan jQuery untuk meramalkan susunan elemen div?

Perintah elemen div boleh rawak dengan menggunakan kaedah jQuery's .get () untuk menukar objek jQuery ke dalam array, dan kemudian secara rawak menyusun array dan masukkan unsur -unsur kembali ke elemen induk. Berikut adalah contoh:

Apakah kerumitan masa algoritma shuffling fisher-yates?
var parent = $("#parent");
var divs = parent.children();
divs.sort(function() { return Math.random() - 0.5; });
divs.detach().appendTo(parent);
Salin selepas log masuk

algoritma shuffling fisher-yates mempunyai kerumitan masa O (n), di mana n adalah bilangan elemen dalam array. Ini menjadikannya pilihan yang berkesan untuk menyusun susunan besar secara rawak.

Bolehkah saya menyusun susunan objek secara rawak menggunakan algoritma shuffling fisher-yates?

Ya, algoritma shuffle Fisher-Yates boleh digunakan untuk menyusun array unsur-unsur jenis apa-apa, termasuk objek. Algoritma merawat setiap elemen sebagai satu unit, tanpa mengira data yang terkandung di dalamnya.

bagaimana untuk menyusun array secara rawak dalam jQuery?

JQuery tidak mempunyai kaedah terbina dalam untuk menyusun array secara rawak, tetapi algoritma shuffling JavaScript's Fisher-Yates boleh digunakan bersamaan dengan jQuery. Berikut adalah contoh:

Adakah terdapat cara untuk menyusun array secara rawak di JavaScript tanpa mengubah suai array asal?
$.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);
};
Salin selepas log masuk

Ya, anda boleh membuat salinan tatasusunan dan menyusunnya secara rawak. Ini boleh digunakan untuk membuat replika menggunakan kaedah .slice () dan kemudian gunakan algoritma shuffle Fisher-Yates ke replika.

Bolehkah saya menyusun rentetan secara rawak dalam JavaScript?

Ya, anda boleh menyusun rentetan secara rawak dalam JavaScript dengan menukar rentetan ke dalam array karakter, menyusunnya secara rawak, dan kemudian menyusun semula tatasusunan ke dalam rentetan. Berikut adalah contoh:

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;
}
Salin selepas log masuk
Salin selepas log masuk

bagaimana untuk menyusun susunan secara rawak dalam susunan tertentu?

Arahan menyusun secara rawak dalam susunan tertentu adalah istilah ambivalen kerana penyortiran rawak bermakna urutan rawak. Jika anda perlu mengatur array dalam urutan bukan rawak tertentu, anda perlu menggunakan algoritma penyortiran dan bukannya algoritma penyortiran rawak.

Bolehkah saya menggunakan algoritma shuffle Fisher-Yates untuk menyusun senarai secara rawak dalam jQuery?

Ya, anda boleh menggunakan algoritma shuffle Fisher-Yates untuk menyusun senarai secara rawak dalam jQuery. Anda boleh menggunakan kaedah .get () untuk menukar item senarai ke dalam array, menyusun array secara rawak, dan kemudian masukkan item kembali ke senarai.

Respons yang disemak ini mengekalkan imej asal dan memberikan penjelasan yang lebih ringkas dan lebih baik.

Atas ialah kandungan terperinci Arahan output jQuery mengikut urutan rawak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan