Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
16
rated 0 times [  23] [ 7]  / answers: 1 / hits: 22526  / 6 Years ago, mon, december 3, 2018, 12:00:00

I'm trying to understand how sorting an array in random order works. So, I found the following code:




var as = [max,jack,sam];  
var s = as.sort(func);

function func(a, b) {
return 0.5 - Math.random();
}

console.log(s);




my main question is why they use 0.5 not another number?
and how it really works


More From » arrays

 Answers
29

You used


var as = ["max","jack","sam"];  
var s = as.sort(func);

function func(a, b) {
return 0.5 - Math.random();
}

console.log(s);

And here the most important thing is as.sort(func).

func(a,b) will return value in range of [-0.5,0.5].


Because this function return 0.5 - Math.random() and Math.random() will return the float value which is in range of [0,1].

So that your func will return value in range of [-0.5,0.5].


And this mean that sort order will be set increase or decrease.
this is random.
So your result will be random




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);




[#52996] Wednesday, November 28, 2018, 6 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
erinh

Total Points: 38
Total Questions: 100
Total Answers: 110

Location: Macau
Member since Mon, Nov 16, 2020
4 Years ago
;