如何仅比较2个字符串的第一个字符(javascript)?

问题描述 投票:0回答:3

尝试编写一个 JavaScript 函数来仅比较 2 个字符串的第一个字符,但无法使其工作。这是代码。

function compare(wordOne, wordTwo) {
    if (wordOne.substring(0) === wordTwo.substring(0))
    {
        return true;
    } else {
        return false;
    }
}
compare("house", "hell");
javascript string function substring
3个回答
5
投票

假设你想比较两个字符串的第一个字母,可以使用以下代码

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

4
投票

为了解释为什么当前代码不起作用,您需要将第二个参数传递给

.substring
作为
to
值。
String.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]


2
投票

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);
© www.soinside.com 2019 - 2024. All rights reserved.