任何lodash收集方法都有两种语法。
不链接:
var arr1 = [10, 15, 20, 25, 30, 15, 25, 35]; var arr2 = _.filter(arr1, function(item){ return item % 10 === 5 }); // 现在arr2包含[15、25、15、25、35] var arr3 = _.uniq(arr2); // 现在arr3包含[15、25、35] var arr4 = _.map(arr3, function(item){ return item + 1 }); // 现在arr4包含[16、26、36]
使用链接:
var arr1 = [10, 15, 20, 25, 30, 15, 25, 35]; var arr4 = _(arr1) .filter(function(item){ return item % 10 === 5 }) .uniq() .map(function(item){ return item + 1 }) .value(); // 现在arr4包含[16、26、36] without creating the intermediate results.
实际上,这种链接方式效率更高,因为不会产生中间结果。通过在链的末尾调用to可以对表达式进行延迟求值。.values()