我试图了解如何以随机顺序对数组进行排序。因此,我发现以下代码:
var as = ["max","jack","sam"]; var s = as.sort(func); function func(a, b) { return 0.5 - Math.random(); } console.log(s);
我的主要问题是为什么他们使用 0.5而不是另一个数字 ?以及 它是如何工作的, 请尝试简化它。我是javascript的新手,我正在努力解决这些问题
你用过
而 这里最重要的 是as.sort(func)。 func(a,b)将返回范围内的值[-0.5,0.5]。
as.sort(func)
func(a,b)
[-0.5,0.5]
因为此函数返回0.5 - Math.random()并且Math.random()将返回在范围内的float值[0,1]。 这样您的func返回值将在的范围内[-0.5,0.5]。
0.5 - Math.random()
Math.random()
[0,1]
func
这意味着将设置排序顺序increase或decrease。这是随机的。所以你的结果将是随机的
increase
decrease
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);