Có thể kết hợp bộ lọc và bản đồ của Underscore không? Tôi hiện đang có hai cuộc gọi chức năng riêng biệt, nhưng tôi tự hỏi nếu tôi có thể làm cho chúng hiệu quả hơn bằng cách kết hợp chúng thành một cuộc gọi duy nhất, bằng cách nào đó.Làm thế nào để đạt được hiệu quả tối đa với bản đồ và bộ lọc của gạch dưới?
Về cơ bản tôi có một dãy tên quốc gia - tôi muốn lọc chúng bằng cách sử dụng regex, sau đó ánh xạ kết quả đã lọc vào một mảng đối tượng DataItem. Đây là mã hiện tại của tôi:
var filteredData = _.filter(allCountries, function(n, i){
var re = RegExp("^" + searchString, "i");
if (re.exec(n['country'].toLowerCase()) !== null) {
return true;
}
});
var mappedData = _.map(filteredData, function(n, i){
return new DataItem(i, n['name'], n['budget']);
});
Bất kỳ mẹo nào khác để cải thiện hiệu quả cũng sẽ được biết ơn.
Chuỗi được ưu tiên hơn cho mỗi –
@itcouldevenbeaboat: có thể, tôi không sử dụng gạch dưới nhiều ... Trong trường hợp cụ thể này, mỗi chữ có vẻ dễ đọc hơn. – georg
Điều này không tốt bởi vì bây giờ bạn đã giới thiệu biến 'result' có thể thay đổi không cần thiết. Người ta có thể cho rằng bạn cũng có thể sử dụng vòng lặp 'for' trong trường hợp này. 'chuỗi' là cách ưa thích để đi. – spinningarrow