gpt4 book ai didi

javascript - 剪线

转载 作者:行者123 更新时间:2023-12-02 17:49:04 25 4
gpt4 key购买 nike

我正在按照《Eloquent Javascript》一书中的练习进行练习,并得出了这段代码:

function between(string, start, end)
{
// Start AT the last character position of the start string

var startAt = string.indexOf(start) + start.length;

//Count the position of the end string first character
var endAt = string.indexOf(end, startAt);

return string.slice(startAt, endAt);

}

var betweenIn = between('Inazuma Eleven', 'Ina', 'ven');
console.log(betweenIn);

代码运行良好。它在 in 之间提取一段字符串。现在我试图真正理解这一段,但有一件事我不清楚。变量 endAt 检查第三个给定参数的字符串的第一个字符位置(在本例中,我的字符串是“Inazuma Eleven”,结束参数是“ven”。我需要它来切片字符串,但似乎第二个参数indexOf 方法没有做任何事情。如果我删除它,我会得到相同的结果。这是为什么?

最佳答案

indexOf 的第二个参数默认为 0。这是字符串中开始查找匹配子字符串的位置。

从起始字符串末尾开始可确保:a) 如果起始字符串和结束字符串相同,则结束字符串与它的第一个实例不匹配;b) 您必须扫描较少的目标字符串,以便代码运行速度更快。

在本例中,开始字符串和结束字符串不同,因此结果是相同的。然而,由于 indexOf 方法将搜索更多的字符串(从 0 而不是第 4 个字符开始),因此运行速度会稍微慢一些。

关于javascript - 剪线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21517550/

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