Không có hàm Javascript hoặc Coffeescript phổ biến/tiêu chuẩn nào chuyển đổi các giá trị của một đối tượng/bản đồ/băm?Bất kỳ hàm bản đồ nào của Javascript hoặc Coffeescript có thể chuyển đổi các giá trị * đối tượng *?
jQuery has $.map
nhưng chỉ tạo ra Array
s.
Underscore has _.map
nhưng cũng chỉ tạo ra Array
s.
Để rõ ràng, một chức năng như thế này là những gì tôi đang tìm kiếm. (Ví dụ này được viết bằng Coffeescript không Javascript.)
# Transforms the values in a map. (Doesn't modify `obj` — returns a new map.)
# Example usage:
# mapObjVals({ a: 'aa', b: 'bb'}, (key, value) -> value + '_!')
# --> { a: 'aa_!', b: 'bb_!' }
mapObjVals = (obj, f) ->
obj2 = {}
for k, v of obj
obj2[k] = f k, v
obj2
Bạn dường như đã trả lời câu hỏi của riêng mình :) Chỉ cần đảm bảo bạn sử dụng 'cho riêng k, v của obj' để tránh bị bit bởi phần mở rộng mẫu thử nghiệm. Tôi sẽ sử dụng vòng lặp 'for' trực tiếp thay vì một hàm trợ giúp, vì đây là một ocurrence hiếm. –