Trong C#, chúng tôi có Enumerable.First(predicate)
. Với mã này JavaScript:Bộ lọc JavaScript đầu tiên tương đương với LINQ's Enumberable.First (vị ngữ)
function process() {
var firstMatch = ['a', 'b', 'c'].filter(function(e) {
return applyConditions(e);
}).shift();
if(!firstMatch) {
return;
}
// do something else
}
function applyConditions(element) {
var min = 97;
var max = 122;
var random = Math.floor(Math.random() * (max - min + 1) + min);
return element === String.fromCharCode(random);
}
khác hơn forEach
, sử dụng vòng lặp, sử dụng nhiều hoặc người điều khiển hoặc ngầm gọi some(predicate)
, là có một cách thông minh hơn của việc tìm kiếm các firstMatch
? Tốt hơn là một hàm JavaScript (một cái gì đó như filterFirst(pedicate)
) mà ngắn mạch trên trận đấu đầu tiên giống như C# 's Enumerable.First()
thực hiện?
FWIW, tôi đang nhắm mục tiêu thời gian chạy node.js/io.js.
+1 Có '.find (predicate)' là chính xác những gì tôi đang tìm kiếm trong node.js. Đây vẫn là thử nghiệm và trạng thái đặc tả là bản nháp. –
Nó không _really_ thực nghiệm để được công bằng :) Dự thảo đã giải quyết mà họ đang tìm ra ngữ nghĩa của những thứ khác bây giờ. –