【问题标题】:Js FOR loop returning 'undefined'Js FOR 循环返回 \'undefined\'
【发布时间】:2022-11-16 14:00:52
【问题描述】:

我试图在每个单词的开头和结尾添加星号,但我在新字符串的末尾一直未定义。我在这里先向您的帮助表示感谢。

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

【问题讨论】:

  • 例如,如果要记录解决方案(“star”),我会得到“一个rundefined" 但我想要的是 "*s一个r*"

标签: javascript for-loop undefined


【解决方案1】:

我认为你的 for 循环应该是

for(let i = 0; i < s.length; i++)

因为在你的 for 循环的最后一次,i = s.length。

并且 s[s.length] = undefined

【讨论】:

    【解决方案2】:

    您的问题是 for(let i = 0; i &lt;= s.length; i++) &lt;= 应该只是 &lt; 未定义来自最后一个不存在的“长度”字符。

    您可以通过将此代码添加到 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');
    &lt;div id="test"&gt;&lt;/div&gt;

    【讨论】:

      猜你喜欢
      • 2021-05-24
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2016-12-30
      相关资源
      最近更新 更多