php js 获取数组最后一个元素的值,javascript lastIndexOf 返回指定元素在数组中的最后一个的索引...

javascript lastIndexOf 概述

lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前

查找,从 fromIndex 处开始。

javascript lastIndexOf 语法

arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1])

javascript lastIndexOf 参数

searchElement 被查找的元素。

fromIndex 从此位置开始逆向查找。默认为数组的长度减 1,即整个数组都被查找。如果该值大于或等于数组的长度,则整个数组会被查找。如果为负值,将其视为从数组末尾向前的偏移。即使该值为负,数组仍然会被从后向前查找。如果该值为负时,其绝对值大于数组长度,则方法返回 -1,即数组不会被查找。

javascript lastIndexOf 描述

lastIndexOf 使用严格相等(strict equality,即 ===)比较 searchElement 和数组中的元素。

javascript lastIndexOf 实例

下例使用 lastIndexOf 定位数组中的值。

var array = [2, 5, 9, 2];

var index = array.lastIndexOf(2);

// index is 3

index = array.lastIndexOf(7);

// index is -1

index = array.lastIndexOf(2, 3);

// index is 3

index = array.lastIndexOf(2, 2);

// index is 0

index = array.lastIndexOf(2, -2);

// index is 0

index = array.lastIndexOf(2, -1);

// index is 3

下例使用 lastIndexOf 查找到一个元素在数组中所有的索引(下标),并使用 push 将所有添加到另一个数组中。

var indices = [];

var array = ['a', 'b', 'a', 'c', 'a', 'd'];

var element = 'a';

var idx = array.lastIndexOf(element);

while (idx != -1) {

indices.push(idx);

idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);

}

console.log(indices);

// [4, 2, 0];

注意,必须单独处理 idx == 0 时的情况,因为如果元素是数组中的第一个元素,则总会被查找,忽略了 fromIndex 参数。 这点和 indexOf 方法不同。(译注:个人觉得这句话解释有问题,idx == 0时,array.lastIndexOf(element, idx - 1) 会从最后一个元素向前查找,这样就重复查找,且死循环了,所以要做一个判断,而且已经查找到第一个元素了,就该结束了)。

javascript lastIndexOf 兼容旧环境

lastIndexOf 在 ECMA-262 标准第 5 版被添加。因此它在不兼容该标准的浏览器中可能不被支持。你可以把下面代码添加到脚本中来使那些没有实现该方法的实现环境支持该方法。

if (!Array.prototype.lastIndexOf) {

Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {

'use strict';

if (this === void 0 || this === null) {

throw new TypeError();

}

var n, k,

t = Object(this),

len = t.length >>> 0;

if (len === 0) {

return -1;

}

n = len - 1;

if (arguments.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));

}

}

for (k = n >= 0

? Math.min(n, len - 1)

: len - Math.abs(n); k >= 0; k--) {

if (k in t && t[k] === searchElement) {

return k;

}

}

return -1;

};

}

另外,该实现是为了绝对兼容 Firefox 和 the SpiderMonkey JavaScript 引擎中的 lastIndexOf,包括了几种临界情况。如果你要在实际应用中使用该实现,可以忽略这些临界情况,从而简化 fromIndex 的计算。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值