#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';
}
}
«переключатель» лучше подходит для этой задачи, чем «если/иначе». Но не забывайте использовать «разрывы», если вы не возвращаете значение после каждого случая.