![]() |
1
3
好。原因很直接。
把位置想象成
也许你在找
观察
你也不应该用
在上面的例子中,
|
![]() |
2
3
不,索引从零开始。
(数组也是如此,尽管引用了字符串的文档,但仍将其用于示例)。 |
![]() |
3
1
其他人都在说同样的话,但让我试着用另一种措辞来回答。 在javascript中,数组是从元素0开始索引的。因此,如果在开头找到的字符串qas,则有效的返回值将为0。如果字符串not found被报告为0,则您将不知道它是否在开头被找到或找到。-1永远不是字符串中某个位置的有效值。 至于你的测试
你可以用
以避免使用!==-1检验。 一般来说,array.indesof()的结果是重载的。结果包含函数结果和错误代码。此重载允许在测试中直接使用函数调用。但是,请考虑,如果函数调用在if语句中,则可能需要再次调用该函数,这是效率损失。如果在if之前对结果进行赋值,然后测试结果,则计算效率会更高。甚至没有内存开销,因为函数中的变量在堆栈上,如果保持变量为局部变量,则在函数返回时清除堆栈。 返回包含成功/失败标志和结果的结构的函数是一种简单的方法,可以泛化可能失败的函数调用,并且是一个方便的地方,可以在不复杂化要执行的简单测试的情况下进行异常处理。 |
|
4
0
因为在几乎所有的编程语言中,0都是数组的第一个位置。 |
![]() |
5
0
|
![]() |
Aalksv · 带对象的数组索引[闭合] 7 年前 |
![]() |
James Howell · Javascript-返回意外结果的函数 8 年前 |
![]() |
Dany · 带有字符(i)的公共布尔isnamevalid() 8 年前 |
![]() |
William · 无法抓取indexOf-不是函数 8 年前 |
![]() |
Greg Holden · 迭代对象属性以检查数组中是否存在任何属性 8 年前 |
|
user8098743 · 合并/优化子字符串语句 8 年前 |
|
user6363583 · 如何在Java中从特定索引中获取关键字 9 年前 |