簡體   English   中英

使用JavaScript將每個數組元素的首字母大寫

[英]Capitalize first letter of each array element using JavaScript

我有一個字符串,每個逗號都分成一個數組。 然后,我遍歷數組,並將每個元素一個一個地添加到字符串中,但使用換行符將它們分隔開。

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>"; 
}

任何建議將不勝感激。

您可以使用map大大簡化此過程,方法是將句子中的每個單詞轉換為大寫形式,然后將數組重新組合成一個句子:

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

您不需要使用.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> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM