функция изменения первых букв слова на верхний регистр
const bigword = (str) => { let result = ""; let b = 0; for (let i = 0; i < str.length; i++){ if (str.charAt(i) === " " && str.charAt( b = i + 1 ) !== " " || i === 0 ) { result += str[i].toUpperCase(); } else { result += str.charAt(i); } } return result; } проблема в том что условие if (str.charAt(i) === " " && str.charAt( b = i + 1 ) !== " "не работает, предполагалось что работать будет так если символ равен пустой строке и за ним идет символ не пустая строка то этот символ надо перевести в верхний регистр |
const bigword = str => str.replace(/(?:^|\s)[a-zа-яё]/gi, m => m.toUpperCase()); |
Alexsandr,
"use strict" const bigword = (str) => { let result = ""; let b = true; for (let i = 0; i < str.length; i++){ result += b ? str[i].toUpperCase() : str.charAt(i); b = str.charAt(i) === " ";} return result; } alert(bigword(" привет тест")); |
Кстати, если пишете на ES6, то можете спокойно использовать:
"use strict" const bigword = (str) => { let result = ""; let b = true; for (let i of str){ result += b ? i.toUpperCase() : i; b = i === " ";} return result; } alert(bigword(" привет тест")); |
Ruslan_xDD,
ок!:) |
я не понимаю что за значки ? в коде
я прохожу курс на hexlet там мы это не проходили Задачу надо решить именно с помощью указанных в коде приемов if (str.charAt(i) === " " && str.charAt( b = i + 1 ) !== " " и почему не работает это условие? |
Цитата:
|
ввожу hellow world
выходит Hellow world но ведь между ними есть пробел и следующий символ w |
Alexsandr,
"use strict" const bigword = (str) => { let result = ""; for (let i = 0; i < str.length; i++){ if ( i === 0 || str.charAt(i) !== " " && str.charAt( i - 1 ) === " " ) { result += str[i].toUpperCase(); } else { result += str.charAt(i); } } return result; } alert(bigword(" привет тест")); |
сделал ошибку
result += str[i].toUpperCase();исправил result += str[b].toUpperCase();b это i +1 то есть следующий за пробелом символ |
Часовой пояс GMT +3, время: 11:21. |