Решение 8 кю Определить код карты масти Войны (в javascript)?

#javascript

Вопрос:

Моя функция указана ниже, но, похоже, она не работает. Колода предварительно загружена, и тест использует 4 карты для прохождения функции. Я что-то упускаю?

Кодовые войны Ката

https://www.codewars.com/kata/5a360620f28b82a711000047

функция определяет костюм(карту) {

var x = карта.разделение(«);

если (x === ‘♣’) {

вернуть «трефы»;

} иначе, если ( x === ‘♦’) {

вернуть «бриллианты»;

} иначе, если ( x === ‘♥’) {

верните «сердца»;

} еще {

вернуть «пики»;

}

};

Комментарии:

1. split() возвращает массив, к которому вы обращаетесь не x так, как если бы это был массив, т. е. x[1]

Ответ №1:

Вы можете использовать substr(-1) вместо split(«)[1]. Оба будут работать одинаково, но substr(-1) немного быстрее

 function defineSuit(card) {

   var suit = card.substr(-1);
   switch(suit){
      case '♣': return 'clubs';
      case '♦': return 'diamonds';
      case '♥': return 'hearts';
      default: return 'spades';
   }

}
 

«переключатель» лучше подходит для этой задачи, чем «если/иначе». Но не забывайте использовать «разрывы», если вы не возвращаете значение после каждого случая.