Nâng CaoJavaScript iconJavaScript

Viết hàm curry đa năng?

Currying là kỹ thuật biến một hàm nhận nhiều tham số thành chuỗi các hàm mỗi hàm nhận một hoặc vài tham số. Cách implement: function curry(fn) { return function curried(...args) { if (args.length >= fn.length) return fn(...args); return (...more) => curried(...args, ...more); }; } — hàm kiểm tra nếu đủ số tham số thì gọi hàm gốc, chưa đủ thì trả về hàm mới chờ nhận thêm.

Ví dụ: const add = curry((a, b, c) => a + b + c) cho phép gọi linh hoạt add(1)(2)(3), add(1, 2)(3), hay add(1, 2, 3) đều trả về 6. Đây là câu hỏi phỏng vấn kiểm tra kiến thức functional programming, closures, và khả năng xử lý arguments linh hoạt.

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript