underscore.js的替代方案

Chr*_*phe 10 javascript datatable json underscore.js

我正在寻找一个操纵对象数组的JavaScript库,主要用于过滤,排序和分组/计数.

似乎underscore.js适合该法案,但我有兴趣探索其他选择.Underscore有60多种功能,而我只需要少量功能.

例如,我希望一些数据库可以包含这些功能,但我不知道在哪里查看.

Nic*_*Cox 18

我知道这已经老了,但你看过洛达什吗?从网站:

Underscore.js的直接替换*.[...]

自定义构建可以轻松创建仅包含所需方法的轻量级Lo-Dash.最重要的是,我们为您处理所有方法依赖和别名映射.

  • @blaster:Lo-Dash的优化程度要高得多.你可以在这里看到一些很好的可视化基准测试结果:http://dtao.github.io/lazy.js/ (2认同)

Hut*_*tch 10

看一下类似于underscore.js的lazy.js(http://dtao.github.io/lazy.js/)但是由于懒惰的评估而显着提升了性能

  • @idbehold:它取决于环境和数组的大小,因为不同的JavaScript引擎表现得非常不同.例如,在Chrome上,即使对于小型阵列而且没有链接,Lazy.js也优于Lo-Dash.但是在Firefox上,你认为Lo-Dash在这种情况下会更快. (3认同)
  • 当您想要将多个操作链接在一起时,此库仅获得性能.执行单个`map()`或`reduce()`将看到零性能增益(在某些情况下实际上会慢一些,特别是与lodash相比).但是,在非常大的数据集上运行时,它的性能提升非常明显. (2认同)

Ray*_*nos 8

这就是所谓的JavaScript arr.filter,arr.sort,arr.length.

您可以申请任何阵列方法阵列上,流行的是filter,mapreduce,你可以通过组合这些构建更复杂的操作.

如果要迭代对象使用

Object.keys(o).forEach(function (key) {
  var val = o[key];
  ...
});
Run Code Online (Sandbox Code Playgroud)

如果你生活在ES3世界中,下划线很有用,但是ES5拥有你需要的一切,所有下划线都是在它上面增加膨胀.

  • `arr.length`?我不是那个能给你节目中海盗数量的人吗?;) (22认同)
  • @Christophe [ES5-shim](https://github.com/kriskowal/es5-shim)问题解决了. (4认同)
  • 我生活在一个IE 8甚至IE 7仍然流行的世界...... http://kangax.github.com/es5-compat-table/ (2认同)

qia*_*iao 5

您可能需要查看以下两个库: