Strange Sortierung des Arrays bei Verwendung von Array.prototype.sort in Chrome
Ich habe bei der Verwendung von @ eine Kuriosität festgestellArray.prototype.sort()
auf eine Reihe von Zahlen und ich bin nicht sicher, was es verursacht.
Mein Ziel ist es, ein Array mit @ umzukehrsort
(nicht mitreverse
) damit ich es so verketten kann:
const shouldReverse = Math.random() > 0.5,
result = foo().bar().map(...).reverseIf(shouldReverse);
Ich glaube, ich sollte in der Lage sein, dies mit @ zu erreichsort
, was in einigen Fällen zu funktionieren scheint, in anderen jedoch nicht.
Hier ist ein funktionierendes Beispiel:
const myArray = ['a', 'b', 'c', 'd'],
mySortedArray = myArray.sort(() => 1);
console.log(mySortedArray);
["d", "c", "b", "a"]
Und ein nicht funktionierendes Beispiel:
const myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'],
mySortedArray = myArray.sort(() => 1);
console.log(mySortedArray);
["f", "k", "a", "j", "i", "h", "g", "b", "e", "d", "c"]
Dies geschieht nur in Chrome und nur, wenn das Array mehr als 10 Elemente enthält. Könnte es sich um eine Optimierung der Chrome V8-Engine handeln?