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"}]