Странная сортировка массива при использовании Array.prototype.sort в Chrome
Я нашел странность при использованииArray.prototype.sort()
на массиве чисел, и я не уверен, что это вызывает.
Моя цель - перевернуть массив, используяsort
(не используетсяreverse
) так что я могу это так:
const shouldReverse = Math.random() > 0.5,
result = foo().bar().map(...).reverseIf(shouldReverse);
Я считаю, что я должен быть в состоянии достичь этого с помощьюsort
, который, кажется, работает в некоторых случаях, но не в других.
Вот рабочий пример:
const myArray = ['a', 'b', 'c', 'd'],
mySortedArray = myArray.sort(() => 1);
console.log(mySortedArray);
["d", "c", "b", "a"]
И нерабочий пример:
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"]
Это происходит только в Chrome и только когда в массиве более 10 элементов - может ли это быть какой-то формой оптимизации в движке Chrome V8?