Sử dụng Underscore.js, tôi có thể viết những điều sau đây trả về 42
:Underscore.js: làm thế nào để tùy chỉnh chức năng chuỗi
_([42, 43]).chain()
.first()
.value()
Tôi đã chức năng tùy chỉnh, chứ không phải một phần của Underscore.js gọi double()
:
function double(value) { return value * 2; };
Tôi muốn có thể gọi hàm này trong một chuỗi Gạch dưới, như thể nó là một phần của Gạch dưới. Tôi muốn viết những điều sau đây, mà tôi muốn trả lại 84
:
_([42, 43]).chain()
.first()
.double()
.value()
này không thể làm việc kể từ gạch không định nghĩa double()
. Tôi có thể sử dụng tap()
như trong:
_([42, 43]).chain()
.first()
.tap(double)
.value()
này có giá trị, nhưng tap
áp dụng các chức năng để đối số của nó và trả về đối số, không phải là kết quả của hàm. Vì vậy, nó trông giống như tôi sẽ cần một loại tap
trả về kết quả của hàm được áp dụng cho đối số của nó. Có điều gì giống như thế này trong Underscore.js không? Tôi có thiếu một cái gì đó khủng khiếp rõ ràng?
Lưu ý rằng 'double' là một [* từ dành riêng trong tương lai *] (http://bclary.com/2004/11/07/#a-7.5.3) và việc triển khai có thể ném một' SyntaxError' nếu nó được sử dụng như một Định danh. – CMS
Alessandro, có bạn đã tìm ra được nêu ra rằng tôi đã cho bạn câu trả lời đúng chỉ cho câu hỏi này? Những gì tôi đặt ra không gây ô nhiễm không gian tên gạch dưới. Thư viện underscore.js dự đoán những gì bạn đã yêu cầu và xây dựng trong một tính năng cho chính xác điều đó. –
Dấu gạch dưới giờ đây có cả 'tap' (chạy một hàm để sửa đổi từng mục) và 'map' (chạy một hàm trả về một mục mới). – CMircea