filtter()
Phương thức filter() trả về một mảng chứa một tập phụ các phần tử của mảng trên đó nó được khởi động. Hàm bạn truyền
tới nó nên là chắc chắn: một hàm cái trả về true hay false. Predicate được khởi động chính như cho forEach() và
map(). Nếu giá trị trả về là true, hay một giá trị cái chuyển đổi thành true, thì phần tử được truyền tới predicate
là một thành viên của tập phụ và được thêm vào mảng cái sẽ trở thành giá trị trả về. Các ví dụ:
let a = [5, 4, 3, 2, 1];
a.filter(x => x < 3) // => [2, 1]; values less than 3
a.filter((x,i) => i%2 === 0) // => [5, 3, 1]; every other value
Chú ý rằng filter() nhảy qua các phần tử mất trong các mảng thưa thớt và rằng giá trị trả về của nó luôn là đậm
đặc. Để làm gần các khoảng cách trong một mảng thưa thớt, bạn có thể làm cái này:
let dense = sparse.filter(() => true);
Và làm gần các khoảng cách và loại bỏ các phần tử undefined và null, bạn có thể sử dụng filter, giống cái này:
a = a.filter(x => x !== undefined && x !== null);
