Giả sử tôi có một (1000) danh sách rất lớn của các đối tượng như thế này:Cách hiệu suất cao nhất để lọc danh sách các đối tượng JSON trong JavaScript là gì?
[{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
Tôi muốn lọc danh sách này bằng tên (nhân vật khôn ngoan).
filter('j') => [{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
filter('jo') => [{name: 'john dow', age: 38, gender:'m'}, ..]
filter('dow') => [{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
Cách hiệu suất cao nhất để làm điều đó là gì? RegEx rõ ràng là một trong các khóa, sắp xếp danh sách trước nếu bạn cho rằng người dùng thường có xu hướng bắt đầu tên từ đầu cũng có thể là một ý tưởng hay, nhưng nó chỉ giúp trong một số trường hợp.
Có bất kỳ hàm JavaScript tích hợp nào để ánh xạ bộ lọc không? Tôi hy vọng những thứ đó sẽ nhanh hơn việc triển khai JavaScript.
P.S .: Có, tôi muốn lọc ở phía máy khách vì "khả năng ngoại tuyến" mà tôi muốn cung cấp.
Thực ra nếu chúng là các đối tượng trong JavaScript, chúng không còn là JSON nữa. "JSON" là * chỉ * ký hiệu được sử dụng để truyền thông tin đó trên mạng (hoặc có thể lưu trữ nó). Bên trong một chương trình JavaScript, chúng đơn giản là "các đối tượng JavaScript" (trừ khi bạn đang nói về một chuỗi * chứa * dữ liệu JSON được mã hóa, trong trường hợp này bạn nên chuyển đổi chúng thành các đối tượng JavaScript trước khi thực hiện thêm bất kỳ công việc nào với nó). –
Nếu bạn tìm kiếm "ohn" thì sao? –
@ JoachimSauer bạn nói đúng ..Tôi đã sửa lỗi đó;) bộ lọc ('ohn') => [{name: 'john dow', tuổi: 38, giới tính: 'm'}, ..] – wzr1337