在javascript中,Array实例有两种方法,

[].indexOf(searchvalue [,start])


[].lastIndexOf(searchvalue [,start])

如果“开始”参数未定义,则行为很奇怪:
[1,2,3].lastIndexOf(2) // 1
[1,2,3].lastIndexOf(2,undefined) // -1
[1,2,3].indexOf(2,undefined) // 1

这发生在 chrome 和 firefox 中,那么 indexOf 和 lastIndexOf 的理论是什么,以不同的方式对待“未定义”

最佳答案

array.lastIndexOf(searchElement[, fromIndex])


[1,2,3].lastIndexOf(2,undefined)[1,2,3].lastIndexOf(2, 0) 相同,因此只会搜索第一个元素。
[1,2,3].lastIndexOf(2, 0) 将返回 -1
[1,2,3].lastIndexOf(1, 0) 将返回 0

关于javascript - 当 start 未定义时,数组的 lastIndexOf 返回 -1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11928951/

10-12 01:00