2017-04-19 4 views
0

でループしながら、交換してください:それは先頭に#を見つけることができませんまで私はこれを行うにはlodashで方法を見つけるためにしようとしていたlodash

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

実際のコードは、すべてのトップラインを飛ばしています。私はそこで、基本的

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

のようなもの、いくつかのクエリと一致していない最初のインデックスを見つけるためlodash方法を行うことができますビットよりよいlodash方法があった期待していました。それは存在しますか?

+0

すべての行が#で始まる場合には書かれて、あなたのコードがスローされることに注意してください。 –

+0

完全に、これは簡略化されたバージョンですが、場合によってはそれを指摘してくれてありがとうございます:) –

答えて

4

_.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>

0

あなたは特定の機能を構成することができます、ロダッシュは非常に良いです。

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>

関連する問題