Thenewbieee Ответов: 1

Может ли кто-нибудь объяснить, что происходит в этом коде?


<!DOCTYPE html>



<p>Click the buttons to sort car objects on type.</p>

Sort

<p id="demo"></p>
<p id="dd"> </p>
<p id="ddd"> </p>



var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}]

displayCars();

function myFunction() {
    cars.sort(function(a, b){
        var x = a.type.toLowerCase();
        var y = b.type.toLowerCase();
        document.getElementById("dd").innerHTML= x;
        document.getElementById("ddd").innerHTML = y;
        if (x &lt; y) {return 0;}
        if (x > y) {return 1;}
        });
    displayCars();
}

function displayCars() {
  document.getElementById("demo").innerHTML =
  cars[0].type + " " + cars[0].year + "<br>" +
  cars[1].type + " " + cars[1].year + "<br>" +
  cars[2].type + " " + cars[2].year;
}


Что я уже пробовал:

Я просто хочу знать, почему .tolowercase используется здесь с return (0) или (1).

1 Ответов

Рейтинг:
8

OriginalGriff

tolowercase используется для обеспечения того, чтобы сравнение всегда сравнивало одни и те же значения: в компьютерных терминах "Hello" - это не то же самое, что "hello", потому что символы верхнего и нижнего регистра не совпадают, " H "- это не те же символы, что "h".

Возвращаемые значения указывают порядок сортировки: 0 означает, что второй параметр является самым большим, 1 означает, что первый является самым большим. Если они оба одинаковы, то он возвращает случайное значение и позже вызовет ошибки...


Thenewbieee

Я все еще не могу понять, не могли бы вы объяснить строки myfunction() ?

Thenewbieee

Сортировка объектов по алфавиту?

OriginalGriff

Да.

Thenewbieee

Как работают 0 и 1? Не могли бы вы это объяснить?

Thenewbieee

Разве это не сравнение всего лишь двух значений? а как насчет третьего значения?

OriginalGriff

Какая третья ценность?
Вы сортируете, сравнивая значения попарно: даже самая простая (пузырьковая) сортировка делает это, сравнивая два соседних элемента и меняя их местами, если они не в порядке. Нет необходимости сравнивать третье значение с чем-либо.
Смотрите здесь, есть анимированная картинка, которая объясняет это:
https://en.wikipedia.org/wiki/Bubble_sort

Thenewbieee

Ладно, большое спасибо.

OriginalGriff

Пожалуйста!

0x01AA

А 5 за вашу помощь