简体   繁体   中英

How to check if 2 strings are equal in JavaScript?

I'm a beginner in JS and trying to sort some cars by their model. The models are sorted by ranking in this order (Mercedes, BMW, Jeep, Nissan). I would like it to be case-insensitive. I went about it by creating a variable for creating the desired rankings.

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);
  }
}

However the modelRanking is always returning 5.

Instead of car1.modelRanking , use modelRanking(car1) because modelRanking is a function in global scope, not a property of 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);
  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM