在JavaScript中,过滤JSON对象列表的最高性能方式是什么?

12 浏览
0 Comments

在JavaScript中,过滤JSON对象列表的最高性能方式是什么?

假设我有一个庞大的(1000+)对象列表,类似如下:

[{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]

我想通过名称(逐个字符)对此列表进行过滤。

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'}, ..]

有什么最高效的方法可以做到这一点?显然,正则表达式是其中之一,如果您假设用户通常倾向于从开头开始输入名称,则预先对列表进行排序也是一个好主意,但这只在某些情况下有帮助。

是否有任何JavaScript内置的映射过滤器函数?我希望它们比JavaScript的实现更快。

附言:是的,我想在客户端进行过滤,因为我想提供“离线功能”。

0