我正在寻找lodash
能够使用函数数组转换/映射/过滤单个值的函数,例如:
给定值为:" a, b ,c"
然后使用如下函数调用 lodash: _.transform(value, functionList)
其中functionList
是 split
的函数数组和trimEach
.
预期结果是 ['a', 'b', 'c']
.
更新:
感谢@vlaz,_.flow()
这就是我正在寻找的东西。
我上面给出的例子说明了函数的用途。我不是在寻找如何分割和 trim 字符串(抱歉,可能是我的英语不够好)。
为了回答我自己的问题(和我的示例),示例代码是:
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>
谢谢大家。
最佳答案
您可以使用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);
关于javascript - Lodash:使用函数数组转换单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39570792/