Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Công dụng của hàm bậc cao (Higher-order functions) trong JavaScript


JavaScript cung cấp nhiều hàm tích hợp sẵn. Nếu giải bài toán chỉ dùng các hàm đó, mã có thể không ngắn gọn. JS cũng cung cấp higher-order functions (hàm bậc cao) tích hợp. Chúng giảm độ dài mã, tăng khả năng đọc, đơn giản hóa truy cập. Một số hàm bậc cao: map, filter, reduce. Thảo luận filter.

Ví dụ

Không dùng higher-order functions, mã cần nhiều bước. Ví dụ: tạo mảng mới dù mảng gốc đủ dùng. Dùng for-loop (không cần nếu dùng higher-order) để duyệt mảng.

<html> <body> <script> 
    const name = []; 
    var persons = [ 
        { name: 'Frodobaggins'}, 
        { name: 'aragorn'}, 
        { name: 'gandalf'}, 
        { name: 'pippin'}, 
        { name: 'nazgul'}, 
    ]; 
    for(let i = 0; i < persons.length; i++) { 
        if(persons[i].name.length > 6) { 
            name.push(persons[i]); 
        } 
    } 
    document.write(JSON.stringify(name)); 
</script> </body> </html>

Kết quả

[{"name":"Frodobaggins"},{"name":"aragorn"},{"name":"gandalf"}]

Ví dụ

Dùng higher-order function filter. So với trên, ít dòng hơn, không mảng mới, không for-loop.

<html> <body> <script> 
    const persons = [ 
        { name: 'Frodobaggins'}, 
        { name: 'aragorn'}, 
        { name: 'gandalf'}, 
        { name: 'pippin'}, 
        { name: 'nazgul'}, 
    ]; 
    const name = persons.filter(person => person.name.length > 7); 
    document.write(JSON.stringify(name)); 
</script> </body> </html>

Kết quả

[{"name":"Frodobaggins"}]