Javascript 如何找到从数组末尾开始的数组元素?

Javascript 如何找到从数组末尾开始的数组元素?,javascript,Javascript,JavaScript有一些数组方法,如indexOf和find,用于获取数组中符合条件的第一个元素。与indexOf相对应的是lastIndexOf,它从数组的末尾开始搜索。我现在想知道是否有一个从数组末尾开始的find的对应项,例如的本机实现 由于性能成本,我宁愿不使用array.slice() Array.prototype.findLast = function(fn) { for(let i = this.length - 1; i >= 0; i--) if(fn

JavaScript有一些数组方法,如
indexOf
find
,用于获取数组中符合条件的第一个元素。与
indexOf
相对应的是
lastIndexOf
,它从数组的末尾开始搜索。我现在想知道是否有一个从数组末尾开始的
find
的对应项,例如的本机实现


由于性能成本,我宁愿不使用
array.slice()

 Array.prototype.findLast = function(fn) {
  for(let i = this.length - 1; i >= 0; i--) 
    if(fn( this[i], i, this )) return this[i];
  return null;
 };



console.log([5,4,3,2,1].findLast(el => el > 3));

不,没有,但您可以轻松填充:

 Array.prototype.findLast = function(fn) {
  for(let i = this.length - 1; i >= 0; i--) 
    if(fn( this[i], i, this )) return this[i];
  return null;
 };



console.log([5,4,3,2,1].findLast(el => el > 3));

您可以使用
reduceRight
,这符合函数式编程的精神。但是,在找到匹配项后尽早返回()并不像在
for
循环中那样容易:

const lastIndexOf=(针,干草堆)=>
干草堆.还原光((a,e,i)=>
a>=0?a:e==i针:-1
, -1)
;
常数arr=[1,4,3,5,5,4,5];
console.log(lastIndexOf(4,arr));

console.log(lastIndexOf(2,arr))您可以使用
reduceRight
,这符合函数式编程的精神。但是,在找到匹配项后尽早返回()并不像在
for
循环中那样容易:

const lastIndexOf=(针,干草堆)=>
干草堆.还原光((a,e,i)=>
a>=0?a:e==i针:-1
, -1)
;
常数arr=[1,4,3,5,5,4,5];
console.log(lastIndexOf(4,arr));

console.log(lastIndexOf(2,arr))Lodash有一个uu.findlastedex()方法,该方法从右到左对集合进行交互


虽然Lodash有一个uu.findlastedex()方法,可以从右到左在集合上进行交互,但不确定其性能


虽然不确定它的性能

如何查找直到未找到并采取先前的方法执行此帮助?“直到找不到为止”和“采取之前的行动”如何帮助您?我希望Lodash的性能与您自己编写的任何代码一样好,我希望Lodash的性能与您自己编写的任何代码一样好。