array.sort() в microsoft edge

365
23 февраля 2018, 19:57

Есть следующий код:

    var mas = [1,2,3,4,5];
    mas = mas.sort(function(){
        return Math.random() > 0.5;
    })
    console.log(mas);

В хроме код выдает случайно перемешанный массив:

В microsoft edge массив не меняется:

Как заставить microsoft edge работать с js как в хроме? Ну или хотя бы этот кусочек кода.

Answer 1

var mas = [1, 2, 3, 4, 5]; 
mas = mas.sort(function() { 
  return Math.random() - 0.5; 
}) 
console.log(mas);

Answer 2

Вообще то внутри sort return может быть отрицательным (< 0), положительным (> 0) и 0

sort(function(a, b){
    // если < 0 а идет первым
    // если > 0 b идет первым
    // 0 нечего не делаем
})

Хочу обратить внимание что ваш пример возвращает boolean, чего нет в документации

И в хроме работает только потому что sort кастует boolean к int и получаеться что true == 1, false == 0.

А вот Осел этого не понимает потому и не работает.

Ответ @Igor более корректный если задача перемешать массив

READ ALSO
Document.onclick() не работает

Document.onclick() не работает

При нажатие Documentonclick() работает только Button 2, а при нажатие document

246
Не считывается свойство объекта в JavaScript

Не считывается свойство объекта в JavaScript

В самом конце программы нужны удалить некоторые объекты, но в переменную b не записывается значение свойства endSrv

223
Сместить анимацию, как сделать?

Сместить анимацию, как сделать?

Сместить анимацию, как сделать? Помогите пожалуйста сделать так, чтобы на фоне было вот это изображение и ракета сначала была маленькой рядом...

185
Импорт переменных в js

Импорт переменных в js

ПодскажитеЕсть файл settings

208