Автор оригинала: Sonya Moisset.
Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев » Заголовок корпус предложение “.
В этом алгоритме Мы хотим изменить строку текста, чтобы она всегда была заглавной буквы в начале каждого слова.
В этой статье я собираюсь объяснить три подхода. Сначала с контуром A для LOOP, второй с помощью MAP () метода и третьего с помощью метода замены ().
Алгоритм Задача
Предоставил тестовые случаи
- TitleCase («Я маленький чайник») должен вернуть строку.
- TitleCase («Я маленький чайник») должен вернуться “Я маленький чайник”.
- TitleCase («короткий и крепкий») должен вернуться “короткий и крепкий”.
- TitleCase («вот моя ручка здесь Является ли мой носик “) должен вернуться” Вот моя ручка вот мой носик “.
1 Название чехол на предложение с а. Для петли
Для этого решения мы будем использовать метод string.prototyepe.tolowercase (), метод string.prototypee.split (), метод string.prototype.Charat (), метод string.prototye.slice () и массив. Прототип. Джоин () метод.
- Толкание () Метод Возвращает вызов строкового значения, преобразованного в нижний регистр
- Сплит () Способ расщепляет струнный объект в массив строк, отделяя струну на подсуды.
- Чарт () Метод возвращает указанный символ из строки.
- ломтик () Способ извлекивает раздел строки и возвращает новую строку.
- Присоединяйтесь () Метод объединяет все элементы массива в строку.
Нам нужно будет добавить пустое пространство между скобками Сплит () метод,
var strSplit = "I'm a little tea pot".split(' ');который будет выводить массив разделенных слов:
var strSplit = ["I'm", "a", "little", "tea", "pot"];
Если вы не добавите место в скобках, у вас будет этот вывод:
var strSplit = ["I", "'", "m", " ", "a", " ", "l", "i", "t", "t", "l", "e", " ", "t", "e", "a", " ", "p", "o", "t"];
Мы будем объединяться
str[i].charAt(0).toUpperCase()
– Что будет прописным в заглавном режиме индекс 0 символов текущей строки в цикле для петли –
и
str[i].slice(1)
– который извлечет из индекса 1 до конца строки.
Мы установим всю строку в строчные буквы для нормализации.
С комментариями:
function titleCase(str) {
// Step 1. Lowercase the string
str = str.toLowerCase();
// str = "I'm a little tea pot".toLowerCase();
// str = "i'm a little tea pot";
// Step 2. Split the string into an array of strings
str = str.split(' ');
// str = "i'm a little tea pot".split(' ');
// str = ["i'm", "a", "little", "tea", "pot"];
// Step 3. Create the FOR loop
for (var i = 0; i < str.length; i++) {
str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);
/* Here str.length = 5
1st iteration: str[0] = str[0].charAt(0).toUpperCase() + str[0].slice(1);
str[0] = "i'm".charAt(0).toUpperCase() + "i'm".slice(1);
str[0] = "I" + "'m";
str[0] = "I'm";
2nd iteration: str[1] = str[1].charAt(0).toUpperCase() + str[1].slice(1);
str[1] = "a".charAt(0).toUpperCase() + "a".slice(1);
str[1] = "A" + "";
str[1] = "A";
3rd iteration: str[2] = str[2].charAt(0).toUpperCase() + str[2].slice(1);
str[2] = "little".charAt(0).toUpperCase() + "little".slice(1);
str[2] = "L" + "ittle";
str[2] = "Little";
4th iteration: str[3] = str[3].charAt(0).toUpperCase() + str[3].slice(1);
str[3] = "tea".charAt(0).toUpperCase() + "tea".slice(1);
str[3] = "T" + "ea";
str[3] = "Tea";
5th iteration: str[4] = str[4].charAt(0).toUpperCase() + str[4].slice(1);
str[4] = "pot".charAt(0).toUpperCase() + "pot".slice(1);
str[4] = "P" + "ot";
str[4] = "Pot";
End of the FOR Loop*/
}
// Step 4. Return the output
return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') => "I'm A Little Tea Pot"
}
titleCase("I'm a little tea pot");Без комментариев:
function titleCase(str) {
str = str.toLowerCase().split(' ');
for (var i = 0; i < str.length; i++) {
str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);
}
return str.join(' ');
}
titleCase("I'm a little tea pot");2 Заголовок корпус Предложение с помощью MAP () Метод
Для этого решения мы будем использовать метод Array.prototyepe.map ().
- карта () Метод создает новый массив с результатами вызова предоставленной функции на каждом элементе в этом массиве. Используя карту, позвонит функцию предоставленного обратного вызова только один раз для каждого элемента в массиве, в порядке, и создает новый массив из результатов.
Мы будем строчными и разделить строку, как видно в предыдущем примере до применения метода карты ().
Вместо использования A для цикла мы будем применять метод MAP () в качестве условия в том же конъюближении от предыдущего примера.
(word.charAt(0).toUpperCase() + word.slice(1));
С комментариями:
function titleCase(str) {
// Step 1. Lowercase the string
str = str.toLowerCase() // str = "i'm a little tea pot";
// Step 2. Split the string into an array of strings
.split(' ') // str = ["i'm", "a", "little", "tea", "pot"];
// Step 3. Map over the array
.map(function(word) {
return (word.charAt(0).toUpperCase() + word.slice(1));
/* Map process
1st word: "i'm" => (word.charAt(0).toUpperCase() + word.slice(1));
"i'm".charAt(0).toUpperCase() + "i'm".slice(1);
"I" + "'m";
return "I'm";
2nd word: "a" => (word.charAt(0).toUpperCase() + word.slice(1));
"a".charAt(0).toUpperCase() + "".slice(1);
"A" + "";
return "A";
3rd word: "little" => (word.charAt(0).toUpperCase() + word.slice(1));
"little".charAt(0).toUpperCase() + "little".slice(1);
"L" + "ittle";
return "Little";
4th word: "tea" => (word.charAt(0).toUpperCase() + word.slice(1));
"tea".charAt(0).toUpperCase() + "tea".slice(1);
"T" + "ea";
return "Tea";
5th word: "pot" => (word.charAt(0).toUpperCase() + word.slice(1));
"pot".charAt(0).toUpperCase() + "pot".slice(1);
"P" + "ot";
return "Pot";
End of the map() method */
});
// Step 4. Return the output
return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') => "I'm A Little Tea Pot"
}
titleCase("I'm a little tea pot");Без комментариев:
function titleCase(str) {
return str.toLowerCase().split(' ').map(function(word) {
return (word.charAt(0).toUpperCase() + word.slice(1));
}).join(' ');
}
titleCase("I'm a little tea pot");3 Заголовок корпус предложение с картой () и заменой () Методы
Для этого решения мы будем продолжать использовать метод Array.prototypee.map () и добавить метод string.prototype.replace ().
- заменить () Метод возвращает новую строку с некоторыми или всеми спичками шаблона, замененной заменой.
В нашем случае шаблон для метода замены () станет строкой, которая должна быть заменена новой заменой и будет рассматриваться как строка Verbatim. Мы также можем использовать регулярное выражение Как шаблон для решения этого алгоритма.
Мы будем строчными и разделить строку, как видно в первом примере перед применением метода карты ().
С комментариями:
function titleCase(str) {
// Step 1. Lowercase the string
str = str.toLowerCase() // str = "i'm a little tea pot";
// Step 2. Split the string into an array of strings
.split(' ') // str = ["i'm", "a", "little", "tea", "pot"];
// Step 3. Map over the array
.map(function(word) {
return word.replace(word[0], word[0].toUpperCase());
/* Map process
1st word: "i'm" => word.replace(word[0], word[0].toUpperCase());
"i'm".replace("i", "I");
return word => "I'm"
2nd word: "a" => word.replace(word[0], word[0].toUpperCase());
"a".replace("a", "A");
return word => "A"
3rd word: "little" => word.replace(word[0], word[0].toUpperCase());
"little".replace("l", "L");
return word => "Little"
4th word: "tea" => word.replace(word[0], word[0].toUpperCase());
"tea".replace("t", "T");
return word => "Tea"
5th word: "pot" => word.replace(word[0], word[0].toUpperCase());
"pot".replace("p", "P");
return word => "Pot"
End of the map() method */
});
// Step 4. Return the output
return str.join(' '); // ["I'm", "A", "Little", "Tea", "Pot"].join(' ') => "I'm A Little Tea Pot"
}
titleCase("I'm a little tea pot");Без комментариев:
function titleCase(str) {
return str.toLowerCase().split(' ').map(function(word) {
return word.replace(word[0], word[0].toUpperCase());
}).join(' ');
}
titleCase("I'm a little tea pot");Я надеюсь, что вы нашли это полезным. Это является частью моего «Как решить серию статей« Как решить фкКК-алгоритмы ».
Три способа повторить строку в JavaScript в этой статье, я объясню, как решить «Повторить строку» FreeCodeCamp. Это связано с …
Два способа подтвердить концовку строки в JavaScript в этой статье, я объясню, как решить «Подтвердить« подтвердить окончание FreeCodeCamm ».
Три способа изменить строку в JavaScript Эта статья основана на Бесплатный код Camp Camp основным алгоритмом сценариев «обратная строка»
Три способа активизировать число в JavaScript Эта статья основана на Бесплатный кодовый лагерь основной алгоритм сценариев «факториализировать номер»
Два способа проверить палиндром в JavaScript Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев «Проверка на палиндромы».
Три способа найти самое длительное слово в строке в JavaScript Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев «Найти самое длинное слово в строке».
Три способа вы можете найти наибольшее количество в массиве с использованием JavaScript в этой статье, я собираюсь объяснить, как решить бесплатный код Code Camp «Возвращение крупнейших номеров в массивах« Вызов ». Этот…
Если у вас есть собственное решение или какие-либо предложения, поделитесь их ниже в комментариях.
Или вы можете следовать за мной на Средний , Twitter , Github и LinkedIn Отказ
# StaySurious, # KeepOnhacking & # MasteithiThappen!