2424function getCardValue ( card ) {
2525 const validSuits = [ "♠" , "♥" , "♦" , "♣" ] ;
2626 if ( typeof card !== "string" )
27- throw new Error (
28- `Invalid card format: "${ card } ". Expected rank followed by suit, for example A♠, 10♥, K♦, or 7♣.`
29- ) ;
27+ throw new Error ( `Invalid card format: "${ card } ". Expected a string.` ) ;
3028
3129 let cardSuit = card . slice ( - 1 ) ;
3230 let cardRank = card . slice ( 0 , - 1 ) ;
3331
34- if ( validSuits . find ( ( suit ) => suit === cardSuit ) ) {
35- console . log ( cardSuit ) ;
32+ if ( validSuits . includes ( cardSuit ) ) {
3633 switch ( cardRank ) {
3734 case "A" :
38- console . log ( cardRank , "ace rank" ) ;
3935 return 11 ;
4036
4137 case "J" :
4238 case "Q" :
4339 case "K" :
44- console . log ( cardRank , "face rank" ) ;
4540 return 10 ;
4641
4742 case "2" :
@@ -53,17 +48,16 @@ function getCardValue(card) {
5348 case "8" :
5449 case "9" :
5550 case "10" :
56- console . log ( cardRank , "number rank" ) ;
5751 return Number ( cardRank ) ;
5852
5953 default :
6054 throw new Error (
61- `Invalid card format: "${ card } ". Expected rank followed by suit, for example A♠, 10♥, K♦, or 7♣ .`
55+ `Invalid card format: "${ card } " has an invalid rank " ${ cardRank } ". Expected one of: A, 2–10, J, Q, K .`
6256 ) ;
6357 }
6458 } else
6559 throw new Error (
66- `Invalid card format: "${ card } ". Expected rank followed by suit, for example A ♠, 10 ♥, K ♦, or 7 ♣.`
60+ `Invalid card format: "${ card } " has an invalid suit " ${ cardSuit } ". Expected one of: ♠, ♥, ♦, ♣.`
6761 ) ;
6862}
6963
0 commit comments