Advertisement
Timkor

codeWarsLikes

Mar 4th, 2021 (edited)
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let names = []; /* в кодварсі та на вступному НЕ потрібно створювати вхідні дані, якщо це для перевірки у звичному середовищі
  2. то норм, але все одно не використовуєте цей масив ніде */
  3.  
  4. function displayText(names) {
  5.     if (names.length === 0) {
  6.         return ("'" + "no one likes this" + "'");
  7.     } else if (names.length === 1) {
  8.         return ("'" + names[0] + ' likes this' + "'");
  9.     } else if (names.length === 2) {
  10.         return ("'" + names[0] + ' and ' + names[1] + ' like this' + "'");
  11.     } else if (names.length === 3) {
  12.         return ("'" + names[0] + ', ' + names[1] + ' and ' + names[2] + ' like this' + "'");
  13.     } else if (names.length >= 4) {
  14.         return ("'" + names[0] + ', ' + names[1] + ' and ' + (names.length - 2) + ' others like this' + "'");
  15.     }
  16. }
  17.  
  18. function likes(names) { /* не можу напевне знати навіщо створили другу функцію, але на кодварсі і на вступному важлило
  19. зберегти те іменування що встановлено , не треба його змінювати, бо тоді програма що перевірятеме ваш код не зможе
  20. запустити функцію. Вона запускає її саме за іменуванням
  21. */
  22.     console.log(displayText(names)); // не треба логувати для кодварсу, не можна логувати на вступному. тільки ретурн дає відповідь
  23. }
  24.  
  25. likes(['Peter']);
  26.  
  27.  
  28.  
  29. /*Implement a function likes :: [String] -> String, which must take in input array, containing the names of people who
  30. like an item. It must return the display text as shown in the examples:
  31.  
  32. Тут сказано, що потрібно реалізувати функцію яка.. і це все, нічого іншого робити не треба.
  33.  
  34. likes [] -- must be "no one likes this" - подвійні лапки значать строка, тобто просто повертайте строку, не беріть її в додаткові лапки.
  35. likes ["Peter"] -- must be "Peter likes this"
  36. likes ["Jacob", "Alex"] -- must be "Jacob and Alex like this"
  37. likes ["Max", "John", "Mark"] -- must be "Max, John and Mark like this"
  38. likes ["Alex", "Jacob", "Mark", "Max"] -- must be "Alex, Jacob and 2 others like this"
  39.  
  40. */
  41.  
  42.  
  43.  
  44.  
  45. /* тільки функція що повертає відповідь потрібна на кодварсі , як і на вступному.
  46. НЕ треба створювати вхідні дані
  47. НЕ треба викликати свою функцію передаючи їй вхідні дані, взагалі викликати не треба - просто натиснути ТЕСТ, чи як там.
  48. НЕ треба виводити щось до консолі (в кодварсі можна для себе щось залогувати поки кодите-дебажите) на вступі зась.
  49. все це робить інша програма (ми її не бачемо) що тестує ваш код*/
  50.  
  51. function likes(names) {
  52.     if (names.length === 0) {
  53.         return ("no one likes this");
  54.     }
  55.     if (names.length === 1) {
  56.         return (names[0] + ' likes this');
  57.     }
  58.     if (names.length === 2) {
  59.         return (names[0] + ' and ' + names[1] + ' like this');
  60.     }
  61.     if (names.length === 3) {
  62.         return (names[0] + ', ' + names[1] + ' and ' + names[2] + ' like this');
  63.     }
  64.     if (names.length >= 4) {
  65.         return (names[0] + ', ' + names[1] + ' and ' + (names.length - 2) + ' others like this');
  66.     }
  67. }    
  68. /* ВАЖЛИВО : поміркуйте, чому після ретурн елсе не обов'язково писати, уявіть як програма  працюватиме з елсе, без елсе */
  69.  
  70. /* на кодварсі можна бачити  тести
  71. describe('example tests', function() {
  72.   it('should return correct text', function() {
  73.     Test.assertEquals(likes([]), 'no one likes this');
  74.     Test.assertEquals(likes(['Yana']), 'Yana likes this');
  75.     Test.assertEquals(likes(['Jacob', 'Alex']), 'Jacob and Alex like this');
  76.     Test.assertEquals(likes(['Max', 'John', 'Mark']), 'Max, John and Mark like this');
  77.     Test.assertEquals(likes(['Alex', 'Jacob', 'Mark', 'Max']), 'Alex, Jacob and 2 others like this');
  78.   });
  79. });
  80. Test.assertEquals - це викли теста, що порівнює два отриманих параметру:
  81. перший з них (likes(['Yana'])) буде тим що поверне ваша функція отримавши на вхід ['Yana']
  82. другий - просто строка, що є правильною відповіддю (вона задана літерально, на сленгі - хардкодом)
  83.  
  84. Тести теж можна редагувати, але це не потрібно робити , але можна із цікавості.)
  85. Як бачите все просто.)
  86. Мирного коду!)
  87. * */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement