[英]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.