Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let wordcountinRow = 1; /* ця змінна буде збільшуватись з кожним пробілом, якщо припустити, що ця ж кількість і є кількість слів, то можна іменувати wordCounter. Згідно ТЗ роздільники можуть бути не тільки пробілом, а ще можуть слідувати групою один за одним між словами. */
- let userWords = prompt('Write what you want! '); /* у множині правильно іменувати масиви, в цю змінну потрапить рядок від користувача, можна іменувати її line, string, text etc. */
- for (let i = 0; i < userWords.length; i++) {
- if ( userWords[i] == String.fromCharCode(32)) { // підраховуєте пробіли, краще використати суворе порівняння ( === )
- wordcountinRow ++;
- }
- }
- console.log ('Кількість слів у рядку: ' + wordcountinRow);
- // видалив зайві пусті рядки з коду. Таке рішення підраховує кількість пробілів у тексті.
- // Спитайте людину про рядок і виведіть на екран найдовше слово в рядку.
- let label ,
- startWord = 0,
- maxWord = 0;
- let userWords = prompt('Write what do you want!');
- let b = []; // нажаль таке іменування не допомагає читати код, мабуть писати також.
- let c = ""; // а оце вже краще. Шуткую.
- for (let i = 0; i < userWords.length; i++) { //скопіювала рядок в масив,щоб можна було його змінювати
- b[i] = userWords[i]; // це зайве, зі строкою можна так само працювати як з масивом.
- }
- for (let i = 0; i <= b.length; i++) { // все ж за межі масиву не всі мп дозволяють виходити, краще цього не робити і в js
- if (b[i] == String.fromCharCode(32) || b[i] == undefined) { // ===, інша умова може допомогти з кінцем рядка
- let space = i; // spacePosition, spaceIndex
- let lengthWord = space - startWord;
- if (lengthWord > maxWord) { // шукаємо найдовше слово і ставимо мітку,з якого місця воно починається.
- maxWord = lengthWord;
- label = space-lengthWord; // lengthWord = space - startWord; => label = startWord; )
- }
- startWord = space + 1;
- }
- }
- // змінну с варто було створити тут - якомога ближче до місця використання.
- for (let i=label; i<= label + maxWord -1; i++){ //найдовше слово склеюємо в рядок
- c = c + b[i];
- }
- console.log (c);
- моє питання: Що робити, якщо в рядку буде кілька слів, що матимуть найбільшу довжину? чи для цієї задачі це несуттєво?
- - несуттєво
- мені цікаво, як зробити так, щоб можна було вивести два слова однієї довжини? не підкажете?
- - тоді варто складати слова з максимальною довжиною до масиву, а якщо потім знайдеться ще більше - обнуляти весь масив.
- раджу подивитися рішення цієї задачи за посиланням https://codeshare.io/2KKPqP
- // Гарного коду.
Add Comment
Please, Sign In to add comment