Javascript 在单个值上使用Lodash链
我想在单个Javascript 在单个值上使用Lodash链,javascript,lodash,chaining,Javascript,Lodash,Chaining,我想在单个string上链接一些方法,以便字符串操作看起来更具可读性 但似乎chain()只对集合有效 这不是问题,我只是将它包装到数组中,但为了得到最终值,我必须使用零索引运算符,这在这里看起来很奇怪 var res = _([" test "]) .map(function(s) { return s + s; }) .map(_.trim) .value()[0]; 或打字稿: var res = _([" test "]) .map(s =>
string
上链接一些方法,以便字符串操作看起来更具可读性
但似乎chain()
只对集合有效
这不是问题,我只是将它包装到数组中,但为了得到最终值,我必须使用零索引运算符,这在这里看起来很奇怪
var res = _([" test "])
.map(function(s) { return s + s; })
.map(_.trim)
.value()[0];
或打字稿:
var res = _([" test "])
.map(s => s + s)
.map(_.trim)
.value()[0];
var res = _([" test "])
.map(s => s + s)
.map(_.trim)
.head();
如何解决它?解决方案是使用
head()
而不是value()
:
或打字稿:
var res = _([" test "])
.map(s => s + s)
.map(_.trim)
.value()[0];
var res = _([" test "])
.map(s => s + s)
.map(_.trim)
.head();
这样一来,
res
就只是一个字符串,代码可读性更高。lodash中有两个函数:
至
-将自定义功能应用于链中的价值李>
点击
-应用自定义函数,但不传播其返回值李>
示例(纯ES6):
const res = _.chain(" test ")
.thru(s => s + s)
.thru(_.trim)
.value();
你想举个例子吗?