簡體   English   中英

JavaScript是否有indexOf(lambda)或類似的?

[英]Does JavaScript have an indexOf(lambda) or similar?

我想返回滿足一元謂詞的第一個元素的索引。

例:

[1,2,3,4,5,6,7].indexOf((x) => x % 3 === 0) // returns 2

有這樣的功能嗎? 我打算用的替代方案是

[1,2,3,4,5,6,7].reduce((retval,curelem,idx) => 
{
   if(curelem % 3 === 0 && retval === undefined)
       retval = idx; 
   return retval;
}, undefined);

但是當然效率會降低,因為它在找到元素后不會停止遍歷數組。

是的,有這樣的功能: Array.prototype.findIndex 該方法由ECMAScript 2015引入,您需要使用polyfill來支持舊版瀏覽器。

是的它存在:

console.log([1,2,3,4,5,6,7].findIndex((x) => x % 3 === 0));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM