gpt4 book ai didi

javascript - 谁能给我解释一下函数怎么能等于0?

转载 作者:行者123 更新时间:2023-11-28 18:10:06 25 4
gpt4 key购买 nike

function containsPunctuation(word)  
{
var punctuation = [";", "!", ".", "?", ",", "-"];

for(var i = 0; i < punctuation.length; i++)
{
if(word.indexOf(punctuation[i]) !== -1)
{
return true;
}
}

return false;
}


function isStopWord(word, stopWords)
{
for (var i = 0; i < stopWords.length; i += 1)
{
var stopWord = stopWords[i];

if ((containsPunctuation(word)) && (word.indexOf(stopWord) === 0) && (word.length === stopWord.length + 1))
{
return true;
}
else if (word === stopWord)
{
return true;
}
}

return false;
}

在 block 引用中,containsPunctuation(word) && (word.indexOf(stopWord) === 0 是怎样的?有人能解释一下为什么它们都等于零吗?

我也不确定为什么使用 (word.length === stopWord.length + 1)

最佳答案

我认为您对 if 语句的理解有点不正确。不知道 isStopWord 函数应该做什么,我无法告诉您 (word.length === stopWord.length + 1) 是什么部分就是全部。

我可以告诉你(containsPunctuation(word))是它自己的 bool 值,因为该函数返回 truefalse 。这部分是它自己的评价。

第二部分(word.indexOf(stopWord) === 0)也是一个完整的评价。该部分与 containsPunctuation 函数无关。 indexOf函数返回一个整数,因此它可以等于 0。

第三部分(word.length === stopWord.length + 1)正在检查word的长度是否比 stopWord 的长度多 1 .

它们都是单独的评估,并且因为您在它们之间使用 &&,所以它们都必须评估为 true以便其后面的代码块运行。

这里是indexOf字符串和数组的文档:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

--编辑--根据您的评论,我对 (word.length === stopWord.length + 1) 的猜测是因为该单词可能包含 stopWord 中未包含的标点符号因此,如果标点符号位于单词末尾,则此 if 检查只会返回 true,因为如果停用词从单词开头开始,则 indexOf 检查只会返回 0。

关于javascript - 谁能给我解释一下函数怎么能等于0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com