JavaScript是否有indexOf(lambda)或类似的名称?
我想返回满足一元谓词的第一个元素的索引 例如:JavaScript是否有indexOf(lambda)或类似的名称?,javascript,algorithm,optimization,Javascript,Algorithm,Optimization,我想返回满足一元谓词的第一个元素的索引 例如: [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 retv
[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);
但是,这当然会降低效率,因为它在找到元素后不会停止遍历数组。是的,它存在:
console.log([1,2,3,4,5,6,7].findIndex((x) => x % 3 === 0));
是的,有这样的函数:。该方法是由ECMAScript 2015引入的,您需要使用用于支持旧浏览器的 @Vohuman将其作为一个答案(用一个例子和几个词)发布,我会投票给你“它的工作原理就像lambd函数”——这句话看起来很奇怪。好吧,我想不出它实际上意味着什么。我不知道这意味着什么“像lambda函数一样工作”。对我来说(因为标准没有提供正式的定义),lambda函数===函数表达式。