endsWith() 函数中长度可选参数的作用是什么?

4
在JavaScript方法endsWith中,可选的长度参数有什么用处?
str.endsWith(searchString[, length])

根据文档

如果提供此参数,则将其用作 str 的长度。默认值为 str.length。

我仍然找不到这个参数的任何理由。它是否用于提高搜索效率?在使用此参数时有什么应用?


length 参数:如果提供了,则用作 str 的长度。默认为 str.length。 - CoursesWeb
2个回答

2
通常使用 length 属性来定义要搜索的字符串的较短长度,然后确定你要查找的字符串是否在这个人为缩短的字符串的末尾。
因此,如果你有一个字符串,并且想要查找的字符串是否在该字符串的末尾,但只有在你知道的特定索引位置处截断搜索字符串时才是如此。你可以通过向方法传递新的字符串长度来指定你正在搜索的字符串的索引。
让我们看一下使用 MDN 在 文档 中提供的 length 参数的示例。
let str = 'To be, or not to be, that is the question.'

console.log(str.endsWith('to be', 19))  // true

在这个例子中,传递了19作为长度,使得它只分析字符串的长度为19,也就是只分析到第二个逗号之前的“to be”右边的“e”。因此,它实际上只分析了字符串'To be, or not to be',因为这些是前19个字符。由于当字符串仅被分析到第19个索引(不包括)时,字符串以“to be”结尾,因此返回true。如果没有传递长度参数,它会返回false。这有意义吗?

2

想象一下,你有一个格式化的字符串

202001010000 start 00000001
202001131825   end 00000002

如果您想检查正确方向的子字符串,例如数字、代码或任何其他字符串,您可以描述其长度并进行检查,而无需从字符串中复制。如果部分字符串以“searchString”结尾,则可以检查较长的字符串。这基本上是一个简写形式。
string.slice(0, length).endsWith(searchString)

var string = 'abcfoobar';

console.log(string.slice(0, 6).endsWith('foo')); //  true
console.log(string.endsWith('foo', 6));          //  true
console.log(string.endsWith('foo'));             // false


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接