我试图在每个单词的开头和结尾添加星号,但我一直在我的新字符串结束时未定义。提前感谢您的帮助。
function solution(s) {
var asterisks = "*"
var newString = ""
for(let i = 0; i <= s.length; i++){
if(s === ""){
return "*";
}else{
newString += asterisks + s[i];}
}
return newString;
}
我认为你的for循环应该是
for(let i = 0; i < s.length; i++)
因为在你的for循环的最后一次,i = s.length.
和s (s。
您的问题是for(let i = 0; i <= s.length; i++)
,<=
应该只是<
,未定义来自最后的"长度";字符不存在
您可以通过将以下代码添加到for循环中来绕过添加最后一个*
和最后一个字母的末尾:
if (i == (s.length -1)){
return newString += asterisks;
}
工作的例子:
function solution(s) {
var asterisks = "*"
var newString = ""
for(let i = 0; i < s.length; i++){
if(s === ""){
return "*";
}else{
newString += asterisks + s[i];}
if (i == (s.length -1)){
return newString += asterisks;
}
}
return newString;
}
document.getElementById("test").innerHTML = solution('hello');
<div id="test"></div>