Рубрики
Без рубрики

Как назвать навезти приговор в JavaScript

Помните в класс школы, когда ваши учителя показали вам, как правильно написать бумагу? Первое, что вы начинаете с, это хороший заголовок, и каждое хорошее название правильно заглавна. Во время этого проблема сценариев алгоритма мы узнаем, как заголовочный случай приговор в JavaScript. В конечном итоге мы

Автор оригинала: Dylan Attal.

Помните в класс школы, когда ваши учителя показали вам, как правильно написать бумагу? Первое, что вы начинаете с, это хороший заголовок, и каждое хорошее название правильно заглавна.

Во время этого проблема сценариев алгоритма мы узнаем, как заголовочный случай приговор в JavaScript. В конечном счете, мы собираемся принять наш алгоритм в предложении и извлечь выгоду из первой буквы каждого слова, как если бы это было название бумаги.

Алгоритм Инструкции

Предоставил тестовые случаи

  • TitleCase («Я маленький чайник») должен вернуть строку.
  • TitleCase («Я маленький чайник») должен вернуться Я маленький чайный горшок Отказ
  • TitleCase («короткий и крепкий») должен вернуться Короткий и крепкий Отказ
  • TitleCase («вот моя ручка здесь Мой носик ") должен вернуться Вот моя ручка здесь мой носик Отказ

Решение № 1: .map () и .slice ()

Педак

Понимание проблемы : У нас есть один вход, строка. Наш выход также является строкой. В конечном итоге, мы хотим вернуть входную строку с первой буквой – и только первая буква – каждое слово капитализированное.

Примеры/тестовые случаи : Наши предоставленные испытательные случаи показывают, что у нас должно быть заглавное письмо только в начале каждого слова. Нам нужно снизить корпус остальных. Предоставленные тестовые случаи также показывают, что мы не бросаем никаких кривых шариков в терминах странных слов, разделенных символами вместо пробела. Это хорошая новость для нас!

Структура данных : Нам придется преобразовать нашу входную строку в массив, чтобы манипулировать каждое слово отдельно.

Пара примечаний по методам мы будем использовать:

Давайте поговорим о .карта () :

.map () Создает новый массив с результатами вызова функции на каждом элементе в массиве.

Другими словами, .карта () Позволяет нам манипулировать каждый элемент в массиве с функцией, затем вернуть новый массив с результатами наших манипуляций. Функция может нацелить как текущее значение, так и индекс этого currentValue, как так:

array.map((currentValue, Index) => {  // manipulate the currentValue in some way})

Мы не всегда должны использовать индекс. Хотя будут времена, хотя, когда нам нужно целевать элементы массива по их индексу, так что это удобно иметь в виду.

Теперь давайте посмотрим пример .карта () в действии. У нас есть массив, полный цифр, и мы хотим умножить каждое число на 2.

let arrayOfNumbers = [3, 6, 10, 42, 98]arrayOfNumbers.map(number => number * 2)// returns [6, 12, 20, 84, 196]

Теперь давайте расследовать .кусочек () :

.slice () Извлекает раздел строки и возвращает ее в качестве новой строки. Если вы звоните .slice () На строке, не передавая ее дополнительной информации, она вернет всю строку.

"Bastian".slice()// returns "Bastian"

У нас есть возможность пройти .кусочек () Beginindex и Endindex, как так

.slice(beginIndex, endIndex)

Это рассказывает .slice () Где начать нарезку и где закончить нарезку. Имейте в виду, что строки с нулевыми индексированными! Так что, если мы хотели вернуться из 2-индексированного письма «Бастиана» пока не в том числе 5-индексированное письмо «Бастиана», мы могли бы сделать это:

"Bastian".slice(2, 5)// returns "sti"

С учетом того, что мы можем отрубить начало слов и вернуть остальные из них, проходя только в Beginindex, как и так:

"Bastian".slice(3)// returns "tian"

Алгоритм :

  1. Включите все буквы в ул в строчные буквы.
  2. Разделить нижний регистр ул ...| В массив с каждым словом является отдельный элемент в массиве. Извлечь выгоду из первой буквы каждого элемента в массиве.
  3. Присоединяйтесь к каждому элементу массива в одну строку, отделяя каждое слово пробелом.
  4. Верните заголовка CODED String.

Код : См. ниже!

Я создал много ненужных локальных переменных в вышеуказанном коде, чтобы показать эффект каждого метода на входе. Ниже я удалил локальные переменные, соединенные все методы вместе и удалили комментарии.

Решение № 2: Regex

Предупреждение! Regex – это не лучшее решение для начинающих. Регулярные выражения затруднены по собственной праву, и их сложность является общей бочкой для многих опытных разработчиков. Но эй, я чувствую авантюрную, как я пишу это, и я люблю бросать вызов себе, чтобы еще раз понять Regex, когда смогу. Этот скрипты алгоритма на самом деле очень хорошо поддается регулярному воздействию, поэтому давайте посмотрим на него и посмотрим, сможем ли мы дальше наше понимание Regex!

Педак

Понимание проблемы : У нас есть один вход, строка. Наш выход также является строкой. В конечном итоге, мы хотим вернуть входную строку с первой буквой – и только первая буква – каждое слово капитализированное.

Примеры/тестовые случаи : Наши предоставленные испытательные случаи показывают, что у нас должно быть заглавное письмо только в начале каждого слова. Нам нужно снизить корпус остальных. Предоставленные тестовые случаи также показывают, что мы не бросаем никаких кривых шариков в терминах странных слов, разделенных символами вместо пробела. Это хорошая новость для нас!

Структура данных : Мы не будем трансформировать нашу строку в массив при использовании регулярных выражений. JavaScript имеет Nifty метод .заменять () Это позволяет нам целиться почти все, что мы хотим в строке и заменить его чем-то другим. Мы используем регулярные выражения для достижения того, что мы хотим заменить.

В регулярных выражениях используются так много символов, которые я не могу надеяться дать широкий обзор их здесь. Я могу указать вам на это Chechsheet Однако, что я использую всякий раз, когда я должен использовать Regex.

Что я могу сделать, это сказать вам, что Regex с .заменять () В JavaScript следует базовый узор. .заменять () Использует два аргумента: шаблон (обычно регулярное выражение) и замена (может быть строка или функция).

string.replace(regex, function)

В нашем решении мы будем заменять письмо в начале каждого слова. Как мы получаем Regex сделать это для нас? Мы говорим .заменять () Чтобы соответствовать любому характеру после пробела или сопоставления первого символа всей строки (потому что самое первое слово строки не имеет пробела до него).

Давайте сломаемся частью Regex часть нашего решения. Для этого давайте посмотрим на первый аргумент .заменять () функция. Это код Regex, который определяет, какой шаблон мы стремимся соответствовать и заменить.

// full solution:
function titleCase(str) {  return str.toLowerCase().replace(/(^|\s)\S/g,  (firstLetter) => firstLetter.toUpperCase());}

В конечном итоге мы хотим найти все небессные символы, которые представлены \ S Отказ

Тогда мы хотим указать, что мы хотим сопоставить эти небесштатные символы в начале строки ^ или |. После любого персонажа пробела \ S. Отказ

Мы добавляем глобальный модификатор G Для поиска и замены всех таких шаблонов во всей строке.

Алгоритм :

  1. Включите все буквы в ул в строчные буквы.
  2. Замените первую букву каждого слова в строку с помощью заглавной буквы.
  3. Верните заголовка CODED String.

Код : См. ниже!

Если у вас есть другие решения и/или предложения, пожалуйста, поделитесь в комментариях!

Эта статья является частью сценариев алгоритма серии FreeCodecamp.

Эта статья Ссылки на FreeCodecamp Основные алгоритмы сценариев: Заглавное дело предложение

Вы можете следовать за мной на Средний , LinkedIn и Github Действительно