Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript是否有indexOf(lambda)或类似的名称?_Javascript_Algorithm_Optimization - Fatal编程技术网

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函数===函数表达式。