Javascript是一种支持高阶函数和闭包的函数式编程语言,功能强大,编写简洁的代码,例如数组的map()和过滤器()方法:


严格使用;
var = { 1, 4, 9,16 };
VaR A2 = a1.map(数学。sqrt); / / { 1, 2, 3,4 }
var = a2.filter(A3(x){ return x = 2 = = = 0 > %;}); / / { 2, 4 }


现在问题来了,有图的()和滤波器阵列()方法,但对象没有这些方法。更重要的是,低版本的浏览器,比如IE6到8,有没有这样的方法。

One method, you add these methods to Array.prototype, and then add mapObject () to Object.prototype, as well.

方法二:寻找一个成熟可靠的第三方开源库,并使用统一的函数来实现map()、过滤器()操作。

我们使用方法二,选择的第三方库是下划线。

正如jQuery统一了不同浏览器之间DOM操作的差异,我们可以简单地操作DOM。下划线为函数式编程提供了完美的接口,这使得我们更容易用Javascript实现函数编程。

在装载时的jQuery,本身将绑定到全局变量$,类似的强调,本身将只与全局变量_,这也是为什么它的名字是下划线。

map()操作用下划线实现,如下所示:


严格使用;
_。地图({ 1, 2, 3 }(x)=×××); / / { 1, 4, 9 }


这比用Array.map比较麻烦一点()直接,但强调的地图()也可以作用于对象:


严格使用;
_。地图({:1,B 2,C 3 },(V,K)=>K + = + V); / / { a = 1,b = 2,c = 3 }