等同于LINQ的Enumerable.First(predicate)
- 论坛
- 等同于LINQ的Enumerable.First(predicate)
13 浏览
等同于LINQ的Enumerable.First(predicate)
在C#中,我们有Enumerable.First(predicate)
方法。给定以下JavaScript代码:
function process() { var firstMatch = ['a', 'b', 'c'].filter(function(e) { return applyConditions(e); }).shift(); if(!firstMatch) { return; } // 其他操作 } function applyConditions(element) { var min = 97; var max = 122; var random = Math.floor(Math.random() * (max - min + 1) + min); return element === String.fromCharCode(random); }
除了使用forEach
、循环、多个或运算符或隐式调用some(predicate)
之外,是否有一种更聪明的方法来找到firstMatch
?最好是一个类似于C#的Enumerable.First()
实现的JavaScript函数(类似于filterFirst(predicate)
),能够在第一个匹配时短路执行。顺便提一下,我正在针对node.js/io.js运行时。