我正在寻找能够使用函数数组转换/映射/过滤单个值的lodash
函数,例如:
给定值为:" a, b ,c"
然后使用以下函数调用lodash:_.transform(value, functionList)
functionList
是split
和trimEach
的函数数组。
预期结果为['a', 'b', 'c']
。
更新:
感谢@vlaz,_.flow()
是我正在寻找的。 p>
我上面给出的例子说明了功能的目的。我不是在寻找如何分割和修剪字符串(对不起,可能是我的英语不够好)。
要回答我自己的问题(和我的例子),示例代码是:
function split(v) {
return v.split(',')
}
function trimStrArray(v) {
return _.map(v, _.trim)
}
var fn = _.flow([split, trimStrArray])
console.log(fn(" a, b ,c"))

<script src="https://cdn.jsdelivr.net/lodash/4.15.0/lodash.min.js"></script>
&#13;
感谢大家。
答案 0 :(得分:1)
您可以使用Array.prototype.reduce()
或_.reduce()
来实现它。在函数数组上调用reduce:
function transform(value, functionList) {
return functionList.reduce(function(result, fn) {
return fn(result);
}, value);
}
var value = " a, b, c";
function split(value) {
return value.split(',');
}
function trimEach(value) {
return value.map(function(item) {
return item.trim();
});
}
var functionList = [split, trimEach];
var result = transform(value, functionList);
console.log(result);
&#13;
答案 1 :(得分:0)