Underscore 的链式调用

在对一个对象(包括数组)进行一组操作处理的时候,我们经常会使用如下的情境进行处理

var fruits_1 = ["apples", "pears", "oranges", "grapes", "bananas"],
    fruits_2 = ["plums", "kiwis", "oranges", "bananas", "apples"],
    fruits;

fruits = _.union(fruits_1, fruits_2);
fruits = _.without(fruits, 'kiwis');
fruits = _.sortBy(fruits);

虽然这样也没什么问题。不过如果能够写成链式调用,那就舒服多了(原谅强迫症 (:зゝ∠)

强大的 Underscore 为我们提供了一个包装函数 _.chain(),关于该方法,Underscore 文档是如此描述的:

chain _.chain(obj) 返回一个包装对象。在对该对象在调用 value() 方法之前,调用其他方法会继续返回该包装对象。

比如上面那个水果的示例可以变成如下的样纸。

var fruits_1 = ["apples", "pears", "oranges", "grapes", "bananas"],
    fruits_2 = ["plums", "kiwis", "oranges", "bananas", "apples"];

var fruits = _.chain(fruits_1).union(fruits_2).without('kiwis').sortBy().value();

返回的结果都是 ["apples", "bananas", "grapes", "oranges", "pears", "plums"] 的说。

转载于:https://my.oschina.net/peckzeg/blog/507860

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值