Js FOR循环返回'undefined'



我试图在每个单词的开头和结尾添加星号,但我一直在我的新字符串结束时未定义。提前感谢您的帮助。

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>

最新更新