Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- zero.p2p.shpp.me/tasks/45_1_slova2.html
- /*===========================*/
- let inputString = prompt("Insert some string :"); // бажано створювати змінні якнайближче до місця використання
- /* а коли розробляєте, та налагоджуєте прогу, то можна задати рядок літерально, щоб не вводити кожного разу.*/
- let tempWord = ""; // currentWord ?
- let biggerWord = ""; // max VS bigger - і кожного разу виграєте три літери !) Ну і більш звично.
- //Обьявление функции сортировки букв
- /* хм, сортування.. не впевнений, що потрібне сортування, та його і не бачу в коді функції, є порівняння аскі коду
- * з певними діапазонами, та відповідь булева - чи належить до діапазонів, чи ні. Зараз гляну до аскі таблиці, що за
- * диапазони такі. От би в каментах були ці коди, або ще краще у змінних (чи константах). Ось так, наприклад:
- * let ALetterAsciiCode = 65; (const ALetterAsciiCode = 65; // так константа створюється в js, що не змінеться)
- * let ZLetterAsciiCode = 90;
- * let aLetterAsciiCode = 97;
- * let zLetterAsciiCode = 122;
- * тоді б у того, хто читає код не було б потреби навіть у аскі заглядати, бо замість магічних чисел у функції
- * були б змінні, що своїми іменами все говорять про себе.) Магічні числа - це ті, до яких постають питання:
- * а що то за числа такі? а чого саме таки? А чи буде з іншими працювати? - іменування змінних (констатнт) на ці
- * питання відповідають краще за все! Не магічні числа це нуль та одиниця, у деяких обставинах деякі інші, але якщо
- * змінна (константа) може бути створена із зрозумілим іменуванням - то число краще саме таким чином зберігати в коді.
- *
- * Що до іменування, то зазвтичай потрібне дієслово для функції, типу робитьЩось, але для таких, що перевіряють та повертають
- * тру або фолс є інша гарна ідея: has, is, was, have на початку іменування функції кажуть нам, що цей метод повертає
- * булеве значення. Я б іменував isLetter виходячи з діапазонів */
- function sortSymbols(currentSymbol) {
- if ((currentSymbol >= String.fromCharCode(65) && currentSymbol <= String.fromCharCode(90)) ||
- (currentSymbol >= String.fromCharCode(97) && currentSymbol <= String.fromCharCode(122))) {
- return true; // якщо умова правдива, то повертаємо правду.
- } else {
- return false; // якщо умова хибна, то повертаємо false - відчуваєте , що є умова, те і повертаємо? Спростіть вираз,
- // варіант нижче, для порівняння.
- }
- }
- // ось тут би я прийняв дані , або викликав функцію (на java мові метод) , що приймає та веріфікує їх.
- // let inputString = prompt("Insert some string :"); // бажано створювати змінні якнайближче до місця використання
- //Условие ввода пустой строки или отмены
- if (inputString == undefined || inputString == false) {
- alert("You didn't insert any string!")
- } else {
- //Цикл прохода по всем елементам строки
- for (let i = 0; i < inputString.length; i++) {
- let tempValue = sortSymbols(inputString[i]); // currentLetter ?
- //если символ буква = склеиваем в переменную
- if (tempValue === true) { // порівняння з булевими значеннями можна записувати так: if (tempValue). А if (!tempValue) те саме if (tempValue === false)
- tempWord += inputString[i];
- }
- //если текущее слово больше предидущего, присваиваем новое
- if (tempWord.length > biggerWord.length) { /* з точки зору оптимізації, будемо на кожну літеру порівнювати слова,є
- щось присвоювати до найбільшого слова, можна це робити коли слово зчитане (або кінець рядку), тоді на кожне слово буде перевірка.
- але з точки зору коду - ваш варіант простіший. Якщо буде бажання оптимізувати можете подивиться посилання codeshare.io/2KKPqP */
- biggerWord = tempWord;
- }
- //обнуляем временную переменную по окончанию слова
- if (tempValue === false) {
- tempWord = "";
- }
- }
- alert("The greatest word of your string is : " + biggerWord);
- }
- /* потім, коли будете все спрощувати, стане в пригоді спочатку привести всю строку до нижнього регістру (є така функція),
- а потім обробляти */
- /* Гарного коду */
- /* а ще, коли згадаємо, що умова саме і повертає булеве значення, то нашметод взагалі стане виглядати як дорослий*/
- function isLetter(currentSymbol) {
- currentSymbol = currentSymbol.toLowerCase();
- return ((currentSymbol >= String.fromCharCode(aLetterAsciiCode) &&
- currentSymbol <= String.fromCharCode(zLetterAsciiCode)));
- }
Add Comment
Please, Sign In to add comment