您好我有一个JQuery对象,其中每个包含多个div:
</LinearLayout>
我想复制对象并将divs内部混洗,这样当我显示新对象时,它将是原始对象的混乱版本。这是可能的JQuery对象或我将不得不将div存储在一个数组中,如果是这样,有人可以告诉我如何实现这一点?
答案 0 :(得分:1)
使用通用的随机播放算法(例如 Fisher-Yates shuffle)并将您的对象作为参数传递,例如
function shuffle(array) {
var m = array.length, t, i;
// While there remain elements to shuffle…
while (m) {
// Pick a remaining element…
i = Math.floor(Math.random() * m--);
// And swap it with the current element.
t = array[m];
array[m] = array[i];
array[i] = t;
}
return array;
};
var object = $('<div>1</div><div>2</div><div>3</div><div>4</div><div>5</div>');
/* use spread operator to pass the array of divs */
var shuffledArray = shuffle([...object]);
/* print the divs shuffled */
shuffledArray.map((d)=>console.log(d.textContent));
/* append divs to the body */
$('body').html($(shuffledArray));