簡體   English   中英

在單個值上使用 Lodash 鏈

[英]Use Lodash chain on single value

我想在單個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];

如何解決?

lodash有兩個函數:

  1. thru - 將自定義函數應用於鏈中的值;
  2. tap - 應用自定義函數,但不傳播其返回值;

示例(純 ES6):

const res = _.chain("   test   ")
       .thru(s => s + s)
       .thru(_.trim)
       .value();

解決方案是使用head()而不是value()

var res = _(["   test   "])
   .map(function(s) { return s + s; })
   .map(_.trim)
   .head();

或打字稿:

var res = _(["   test   "])
   .map(s => s + s)
   .map(_.trim)
   .head();

這樣res只是一個字符串,代碼可讀性更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM