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();
    

    你想举个例子吗?