JavaScript
发布时间:2022-04-16 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了详解JavaScript中数组和字符串的lastIndexOf()方法使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
874_0@Array.prototype.las
TindexOf 和
String.prototype.las
TindexOf 是非常的实用的方法,不过很多人不知道它其实可以传递两个参数,第二个参数决定了搜索的
起始位置:
@H_
874_0@
语法
TindexOf(searchValue[,fromIndex])
@H_
874_0@las
TindexOf() 方法返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex 处开始。
@H_
874_0@
参数
@H_
874_0@1.searchValue
一个字符串,表示被查找的值。
2.fromIndex
从调用该方法字符串的此位置处开始查找。可以是任意整数。默认值为 str.length。如果为负值,则被看作 0。如果 fromIndex > str.length,则 fromIndex 被看作 str.length。
@H_
874_0@
区分大小写
@H_
874_0@las
TindexOf 方法区分大小写。例如,下面的表达式返回 -1:
TindexOf("blue"
); // returns -1
@H_
874_0@
lasTindexOf的用法
874_0@// 找到最后一个CD的位置
document.write(ar.las
TindexOf("cd") + "
"
);
// 输出: 4
@H_
874_0@// 从正数第二个位置,搜索倒数第一个CD的位置
document.write(ar.las
TindexOf("cd",2) + "
"
);
// 输出: 1
@H_
874_0@// 从倒数第三个搜索最后一个ab的位置
document.write(ar.las
TindexOf("ab",-3) + "
"
);
// 输出: 0
@H_
874_0@同样
String.las
TindexOf的用法类似
TindexOf("a") // returns 3
"canal".las
TindexOf("a",2) // returns 1
"canal".las
TindexOf("a",0) // returns -1 从第0个往前搜,不存在'a',返回-1
"canal".las
TindexOf("x") // returns -1
@H_
874_0@
lasTindexOf的IE8实现
@H_
874_0@不过微软的IE8及其以下并不支持Array.las
TindexOf,需要兼容实现。
可以参考:
TindexOf)
{
Array.prototype.las
TindexOf = function(searc
Helement /*,fromIndex*/)
{
'use
Strict';
@H_
874_0@if (this === void 0 || this === null)
{
throw new TypeError(
);
}
@H_
874_0@var n,k,t = Ob
ject(this),len = t.length >>> 0;
if (len === 0)
{
return -1;
}
@H_
874_0@n = len - 1;
if (argument
s.length > 1)
{
n =
number(arguments[1]
);
if (n
!= n)
{
n = 0;
}
else if (n
!= 0 && n
!= (1 / 0) && n
!= -(1 / 0))
{
n = (n > 0 || -1) * Math.floor(Math.abs(n)
);
}
}
@H_
874_0@for (k = n >= 0
? Math.min(n,len - 1)
: len - Math.abs(n
); k >= 0; k--)
{
if (k in t && t[k] === searc
Helement)
{
return k;
}
}
return -1;
};
}
@H_
874_0@可以使用 ES5-Slim 使旧版浏览器完全兼容ES5语法。
@H_
874_0@
为什么要避免使用for in
@H_
874_0@不过要注意的是,在Array.prototype上面附加方法后,for in语法也会把las
TindexOf方法也枚举出来:
@H_
874_0@而应该使用 for loop实现
@H_
874_0@这个问题可以使用 Ob
ject.defineProperty 来实现,来避免for in的枚举出las
TindexOf方法:
ject.defineProperty(Array,"las
TindexOf",
{ enumerable:
false })
@H_
874_0@不过一般需要兼容实现的浏览器根本不支持defineProperty 方法。并且在多数浏览器上for in都比for loop要慢很多,因此应该尽量避免使用for in。但是如何枚举Ob
ject属性的key呢? 使用Ob
ject.keys(
{ a
:1 })即可返回关于keys的数组。
大佬总结
以上是大佬教程为你收集整理的详解JavaScript中数组和字符串的lastIndexOf()方法使用全部内容,希望文章能够帮你解决详解JavaScript中数组和字符串的lastIndexOf()方法使用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。