Функция, которая заглавная первая буква каждого слова в отправке - PullRequest
0 голосов
/ 02 апреля 2020

Я сделал функцию, которая делает массив из строки, затем использует заглавную букву в каждом слове, но затем я пытаюсь создать из него строку с помощью функции join (), но она не работает. Поэтому проблема в том, что метод join () не работает, поэтому он не будет преобразовывать массив в строку

function titleCase(string) {
  const arr = string.split(' ')
  return arr.map(item => {
    const newArray = item.charAt(0).toUpperCase() + item.slice(1)
    return newArray.join('-')

  })
}

Ответы [ 3 ]

0 голосов
/ 02 апреля 2020

Ваша переменная newArray в функции обратного вызова на самом деле является не массивом, а строкой каждого элемента в массиве arr (с первой заглавной буквой). Вы вызываете метод join для строки. Вы должны назначить метод arr.map новой переменной и вызвать метод join вне метода arr.map для этого массива.

function titleCase(string) {
  const arr = string.split(' ');
  const newArray = arr.map(item => {
    const eachWord = item.charAt(0).toUpperCase() + item.slice(1);
    return eachWord;
  });
  return newArray.join(" ");
}
0 голосов
/ 02 апреля 2020

ИМО, помогает присвоение имен собственных переменных. вы близки к решению

function titleCase(string) {
  // split by space to get an array of word (string)
  return string.split(' ').map(word => {
     // uppercase first letter and append the rest
     return word.charAt(0).toUpperCase() + word.substring(1);
  }).join(" "); // join words array with space
}
0 голосов
/ 02 апреля 2020

Попробуйте что-то вроде:

function ucFirst(string){
  return string.slice(0, 1).toUpperCase()+string.slice(1);
}
function ucFirstSentence(sentences){
  const all = sentences.match(/.+?(\.|\!|\?)(\s+|$)/g);
  for(let i=0,l=all.length; i<l; i++){
    all[i] = ucFirst(all[i].trim());
  }
  return all.join(' ');
}
let uc = ucFirstSentence("this is just a test. i'm not really sure if it works, a.b. quite yet. i guess we'll see if this suits your needs!");
console.log(uc);
...