是否有任何好的下划线.js替代方案来扩展核心 js 类

Are there any good underscore.js alternatives that extend the core js classes?

本文关键字:js 方案 扩展 核心 任何好 下划线 是否      更新时间:2023-09-26

我发现"语法"_.something(somevar, some_function_or_other_thing);很丑陋。有哪些使用类似红宝石的迭代器和类似东西的好替代品:

10..times(function(i) {
   console.log(i);
});
uppercasefoobar = ["foo", "bar"].each(function(i) {
    return i.toUpperCase();
});

另外,我正在使用node.js,所以它应该更多地关注代码而不是DOM的东西。

没有人提到Lo-Dash。Lo-Dash是Underscore的超集,增加了许多方法。John-David Dalton(Lo-Dash的创建者)在这里回答SO问题时解释了两个库之间的主要区别。

编辑:找到一篇详细的博客文章"向Lo-Dash问好",详细介绍了库的背景,并与其他所谓的"js实用带"进行了比较。

看起来你正在寻找Array.prototype.map

uppercasefoobar = ["foo", "bar"].map(function(i) {
    return i.toUpperCase();
});
// uppercasefoobar == ["FOO", "BAR"]

使用下划线.js您还可以编写:

_.range(10).forEach(function(i) {
    console.log(i);
});

编辑 您还可以使用:

_(3).times(function(i) {
    console.log(i);
});

不像红宝石语法那么漂亮,但它可以完成工作。

通常,下划线提供大多数函数的面向对象版本,其中:

_.something(variable, params);

相当于

_(variable).something(params);

自己找到了一个! http://sugarjs.com/

(是的,我确实意识到扩展本机类本质上是分叉语言......这就是我的动机...