Altçizgi ile kalmak istiyorsanız, böylece yüklem fonksiyonunuz daha esnek olabilir, işte 2 fikir.
Yöntem 1
Koşul koşulu _.findbir öğenin hem değerini hem de dizinini aldığından, aşağıdaki gibi dizini almak için yan etkiyi kullanabilirsiniz:
var idx;
_.find(tv, function(voteItem, voteIdx){
if(voteItem.id == voteID){ idx = voteIdx; return true;};
});
Yöntem 2
Alt çizgi kaynağına bakıldığında, _.findşu şekilde uygulanır:
_.find = _.detect = function(obj, predicate, context) {
var result;
any(obj, function(value, index, list) {
if (predicate.call(context, value, index, list)) {
result = value;
return true;
}
});
return result;
};
Bunu bir findIndexişlev yapmak için , satırı result = value;ile değiştirin result = index;Bu, ilk yöntemle aynı fikirdir. Alt çizginin de uygulamak için yan etkiyi kullandığını belirtmek için ekledim _.find.