【问题标题】:How to compare string letters (javascript)如何比较字符串字母(javascript)
【发布时间】:2018-04-27 12:29:07
【问题描述】:

嘿,我一直在尝试编写一个简单的 javascript 函数来比较字符串字母,但由于某种原因我无法使其工作......这是代码。

function compare(wordOne, wordTwo) {
    if (wordOne.substring(0) === wordTwo.substring(0))
    {
        return true;
    } else {
        return false;
    }
}
compare("house", "hell");

【问题讨论】:

  • 字符串字母 -> 你到底想做什么?
  • 你的代码试图实现什么?您只想比较第一个字符?
  • developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/….substring() 您可以选择包含子字符串的开始和结束位置(如果省略 end,它将捕获到字符串的末尾)... wordOne.substring(0,1)
  • 是的,对不起,我没有很好地解释它......但是是的,我只需要比较第一个字符。
  • 您还可以将字符串视为字符数组。 str = "hello" 表示str[1] = e

标签: javascript string function substring


【解决方案1】:

假设要比较两个字符串的首字母,可以使用如下代码

function compare(wordOne, wordTwo) {
    return wordOne[0] === wordTwo[0];
}
compare("house", "hell");

这压缩了if/else 条件,因为您只对第一个字母是否相等感兴趣 - 而不是它们有多大不同。 您还可以使用str.toUpperCase()(或)str.toLowerCase() 以使比较不区分大小写。

根据@Josh Katofsky 的建议,您当然可以通过添加第三个参数来测试第 n 个字母,从而使这个函数更加通用:

function compare(wordOne, wordTwo, index) {
    return wordOne[index] === wordTwo[index];
}
compare("house", "hell", 0);

【讨论】:

  • 如果您将index 传递给函数然后返回wordOne[index] === wordTwo[index],这将有助于使代码更具可重用性
【解决方案2】:

要解释为什么您当前的代码不起作用,您需要将第二个参数作为to 值传递给.substringString.substring(0) 只返回第 0 个字符之后的整个字符串,所以是整个单词。固定示例;

function compare(wordOne, wordTwo) {
    if (wordOne.substring(0, 1) === wordTwo.substring(0, 1)) {
        return true;
    }
    else 
    {
        return false;
    }
}

compare("house", "hell");

你也可以只使用wordOne[0] === wordTwo[0]

【讨论】:

    【解决方案3】:

    substring 返回开始和结束索引之间的字符串部分,或到字符串的结尾

    如果您只想比较第一个字符,请使用charAt

    function compare(wordOne, wordTwo) {
       return wordOne.charAt(0) === wordTwo.charAt(0);
    }
    compare("house", "hell");
    

    或者你可以将索引作为参数传递

    function compare(wordOne, wordTwo, index) {
       return wordOne.charAt(index) === wordTwo.charAt(index);
    }
    compare("house", "hell", 0);
    

    【讨论】:

    • 你很幸运,javascript 对开发人员来说很好,这样你的第二个例子就可以按预期工作:P(为清楚起见添加额外的 arg)
    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多