Как проверить, равны ли 2 строки в JavaScript? - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в JS и пытаюсь отсортировать несколько машин по их модели. Модели отсортированы по ранжированию в следующем порядке (Mercedes, BMW, Jeep, Nissan). Я бы хотел, чтобы регистр регистров не учитывался. Я сделал это, создав переменную для создания желаемого рейтинга.

var modelRanking = function(car) {
  if (car.model.toLowerCase() === 'mercedes') {
      return 1;
  } else if (car.model.toLowerCase() === 'bmw') {
      return 2;
  } else if (car.model.toLowerCase() === 'jeep') {
     return 3;
  } else if (car.model.toLowerCase() === 'nissan') {
     return 4;
  } else {
     return 5;
  }
}

function modelComparator(car1, car2) {
  if (car1.modelRanking < car2.modelRanking) {
     return true;
  } else if (car1.modelRanking > car2.modelRanking) {
     return false;
  } else if (car1.modelRanking == car2.modelRanking) {
     return yearComparator(car1, car2);
  }
}

Однако modelRanking всегда возвращает 5.

1 Ответ

1 голос
/ 14 июля 2020

Вместо car1.modelRanking используйте modelRanking(car1), потому что modelRanking - это функция в глобальной области видимости, а не свойство car1.

function modelComparator(car1, car2) {
  if (modelRanking(car1) < modelRanking(car2)) {
     return true;
  } else if (modelRanking(car1) > modelRanking(car2)) {
     return false;
  } else if (modelRanking(car1) == modelRanking(car2)) {
     return yearComparator(car1, car2);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...