我想了解如何以随机顺序对数组进行排序。于是,我找到了下面的代码:
var as = ["max","jack","sam"];
var s = as.sort(func);
function func(a, b) {
return 0.5 - Math.random();
}
console.log(s);
我的主要问题是为什么他们使用0.5 而不是另一个数字? 以及它是如何运作的
最佳答案
你用过
var as = ["max","jack","sam"];
var s = as.sort(func);
function func(a, b) {
return 0.5 - Math.random();
}
console.log(s);
这里最重要的事情是as.sort(func)
。
func(a,b)
将返回 [-0.5,0.5]
范围内的值。
因为此函数返回 0.5 - Math.random()
和 Math.random()
将返回 [0 范围内的浮点值, 1]
.
这样您的 func
将返回 [-0.5,0.5]
范围内的值。
这意味着排序顺序将设置为增加
或减少
。
这是随机的。
所以你的结果将是随机的
var as = ["max","jack","sam"];
var s = as.sort(func);
function func(a, b) {
return Math.random();
}
console.log(s);
var as = ["max","jack","sam"];
var s = as.sort(func);
function func(a, b) {
return 0 - Math.random();
}
console.log(s);
var as = ["max","jack","sam"];
var s = as.sort(func);
function func(a, b) {
return 0.5 - Math.random();
}
console.log(s);
关于javascript - 以随机顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591691/