我有这个数组:
var numberArray = [1, 2, 3]
使用jQuery,以一个随机顺序循环遍历此数组中所有元素的最简单方法是什么?有效序列为3,2,1
,2,3,1
,无效序列为1,1,1
或2,2,3
。
答案 0 :(得分:3)
我不知道要随机化的特定jQuery方法,但你可以将数组排序为随机顺序然后循环。
$(function() {
var numberArray = [1,2,3];
numberArray.sort(function() {
return 0.5 - Math.random();
})
$.each(numberArray, function(k,v) {
$('div').append(v);
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div></div>
答案 1 :(得分:0)
这应该可以帮到你。现在,脚本只是在JQuery的每个函数中打印出控制台中的每个数组值,但是您可以从$ .each函数中轻松地执行所需的任何操作。我没有parseInt()$ .each循环中的数组值,所以如果你需要它们有一个数字类型,那么你将不得不这样做。
//The array to randomize
var numberArray = [1, 2, 3]
//sort the array randomly and convert it back to an array so
//that you can get the value of object inside the each function.
var randomArray = numberArray.sort(randomSort).toString().split(",");
//loop through the random array
$.each(randomArray,function(){
//log the value
console.log(this);
});
/* randomSort function */
function randomSort(a,b) {
// Get a random number between 0 and 10
var temp = parseInt( Math.random()*10 );
// Get 1 or 0, whether temp is odd or even
var isOddOrEven = temp%2;
// Get +1 or -1, whether temp greater or smaller than 5
var isPosOrNeg = temp>5 ? 1 : -1;
// Return -1, 0, or +1
return( isOddOrEven*isPosOrNeg );
}