Прописать первую букву каждого элемента массива, используя JavaScript - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть строка текста, которую я разделил на массив в каждой запятой.Затем я перебрал массив и добавил каждый элемент в строку один за другим, но разделил их, используя разрыв строки.

var beg2 = document.twocities.begins.value;
var ans22 = "";
var words2 = beg2.split(",");

for(var i=0; i<words2.length; i++){
    ans22 += words2[i] + "<br>"; 
}

document.getElementById("ans22").innerHTML = ans22;

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

var ans23 = "";

for (var i=0; i<words2.length; i++){
    firstLetter = words[i].charAt(0);
    firstLetterCap = words[i].charAt(0).toUpperCase();
    words[i].replace(firstLetter,firstLetterCap);
    ans23 += words2[i] + "<br>"; 
}

Любые предложения будут с благодарностью.

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Вы можете значительно упростить это с помощью map, преобразовав каждое слово в предложении в его заглавную версию, а затем соединив массив обратно в предложение:

var sentence = 'hello world test';
var capitalized = sentence
                  .split(' ')
                  .map(w => w.charAt(0).toUpperCase() + w.slice(1))
                  .join('<br>');

console.log(capitalized);
0 голосов
/ 17 ноября 2018

Вам не нужно использовать .replace(). Используйте .charAt(0) для выбора первого символа строки и используйте .slice() для выбора следующей части строки

var beg2 = "first,second,third";
var ans22 = "";
var words = beg2.split(",");

for (var i=0; i<words.length; i++){
  words[i] = words[i].charAt(0).toUpperCase() + words[i].slice(1);
  ans22 += words[i] + "<br>"; 
}
document.getElementById("ans22").innerHTML = ans22;
<div id="ans22"></div>

Также вы можете использовать CSS ::first-letter псевдоэлемент и свойство text-transform для этой работы.

var str = "first,second,third";
document.getElementById("ans22").innerHTML = str.split(",").map(function(val){
  return "<div>"+val+"</div>"
}).join("");
#ans22 div::first-letter {
  text-transform: capitalize;
}
<div id="ans22"></div>
...