函数内部和外部的输出不同

时间:2019-09-03 18:50:58

标签: javascript function

这是javascript的初学者挑战之一,您需要检查传递给函数的参数(符号字符串,即=,+,任何字母)是否包含由+包围的随机字母。如果存在,则返回true,否则返回false。

function simple(str) {
    let alph = 'abcdefghijklmnopqrstuvwxyz';
    let alphArray = alph.split('');
    for (let i = 0; i <= alphArray.length; i++) {
        if (str.includes(`+${alph[i]}+`)) {
            return true;
        } else {
            return false;
        }
    }
}

console.log(simple('+d+=3=+s+'));

它应该返回true,但是我肯定缺少某些东西,很可能是这种情况。 此外,尝试在没有函数的情况下执行此操作,并使用带有给定符号的预定义变量进行操作,但效果很差。

1 个答案:

答案 0 :(得分:1)

您需要将false返回语句移出循环,因为这将立即结束循环,而无需检查以下可能的真值,并且需要使索引的长度小于字符串的长度。

顺便说一句,不需要使用数组。

function simple(str) {
    let alph = 'abcdefghijklmnopqrstuvwxyz';
    for (let i = 0; i < alph.length; i++) {
        if (str.includes(`+${alph[i]}+`)) {
            return true;
        }
    }
    return false;
}

console.log(simple('+d+=3=+s+'));