簡體   English   中英

用lodash替換while循環

[英]Replace while loop with lodash

我試圖在lodash中找到一種方法來做到這一點:

var start = 0;
while (rows[start].substring(0, 1) === "#") {
  start++;
}

實際的代碼會跳過所有頂行,直到在開始處找不到#。 我希望有一種更好的lodash方法,我可以做類似的事情

var start = _.someMethod(function (str) {
  return str.substring(0, 1) === "#"
})

因此,基本上是一種lodash方法來查找與某些查詢不匹配的第一個索引。 是否存在?

有一個恰當的名稱_.findIndex()

 var rows = [ "#zero", "#one", "#two", "three", "#four" ]; var index = _.findIndex( rows, function (str) { return str.charAt(0) !== "#"; }); console.log( index ); // 3 
 <script src="https://cdn.jsdelivr.net/lodash/4.12.0/lodash.min.js"></script> 

假設行是一個數組。 您正在尋找_.findIndex

您可以編寫特定的功能,lodash非常擅長。

 var rows = ['#zero', '#one', '#two', 'three', '#four']; var startsWithHash = _.ary(_.partialRight(_.startsWith, '#'), 1); var notStartsWithHash = _.negate(startsWithHash); var findIndexNotStartsWithHash = _.ary(_.partialRight(_.findIndex, notStartsWithHash), 1); var index = findIndexNotStartsWithHash(rows); console.log(index); // 3 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script> 

暫無
暫無

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

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