Timkor

wordCounter

Jan 29th, 2021
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*переробив, але поки не придумав як уникнути "роздування" масиву за рахунок роздільників які йдуть підряд. можливо дасте підказку ?)
  2.  
  3. коли пишете яку задачу вирішуєте  - то так полегшує життя!)) */
  4.  
  5. let userString ;
  6. do {
  7.     userString = prompt('Enter your string');
  8. } while (!userString);
  9.  
  10. let words = [];
  11. words[0] = '';
  12. let separatorCounter = 0;
  13.  
  14. function isLetter(symb) {
  15.     return (((symb.charCodeAt(0) > 64) && (symb.charCodeAt(0) < 91)) || ((symb.charCodeAt(0) > 96) && (symb.charCodeAt(0) < 123)))     // круто круто!
  16. };
  17.  
  18. for (let i = 0; i < userString.length; i++) {
  19.  
  20.  /*   if (!isLetter(userString[i])) {
  21.         separatorCounter++;
  22.         words[separatorCounter] = '';
  23.     } else {
  24.         words[separatorCounter] += userString[i];
  25.     }
  26.  */
  27.  
  28.  
  29.     /* якщо "перевернути" вашу умову - то краще читається наче. Але проблему з не ефективним масивом
  30.     * цим не вирішити. В кінці є рішення, обережно якщо хочете добити самостійно*/
  31.     if (isLetter(userString[i])) {
  32.         words[separatorCounter] += userString[i];
  33.     } else {
  34.         separatorCounter++;
  35.         words[separatorCounter] = '';
  36.     }
  37.    
  38. }
  39.  
  40. let biggestNum = 0;
  41.  
  42. let maxWord;
  43.  
  44. for (let i = 0; i < words.length; i++) {
  45.     if (words[i].length > biggestNum) {
  46.         biggestNum = words[i].length;
  47.         maxWord = words[i];
  48.     }
  49. }
  50. ;
  51.  
  52. console.log('biggest word is ' + maxWord);
  53.  
  54.  
  55. /* Для того щоб не заповнювати роздільниками масив треба збільшувати separatorCounter тільки коли
  56.   поточний є роздільником, а попередній був літерою , ну і не бути роздільником-початком рядка
  57.   тоді той ваш блок коду може вигладати так:
  58.  */
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. if (isLetter(userString[i])) {
  74.     if (words[separatorCounter] === undefined) { // є краще рішення, наче давав посилання раніше
  75.         words[separatorCounter] = '';
  76.     }
  77.     words[separatorCounter] += userString[i];
  78. } else if (i > 0 && isLetter(userString[i - 1])) {
  79.     separatorCounter++;
  80. }
  81.  
Add Comment
Please, Sign In to add comment