アンダースコアからの最新のコードでは、211 行目で次のように表示されます。
result || (result = iterator.call(context, value, index, list))) return breaker;
or ステートメントは必要ですか? で代用できますか
(result = iterator.call(context, value, index, list))) return breaker; // ?
result
は最初は false に設定されており、この 1 行以外に変更されたコードはありません。
JavaScript または (||) ステートメントは、それが true の場合は最初のオペランドを返し、それ ('it' が最初のオペランド) が false の場合は 2 番目のオペランドを返すことに注意してください。これはグッド・パーツのクロックフォードから直接届いたものです。|| にも注意してください。真/偽の値ではなく、真/偽の値で or を実行します。
上記のリンクから再現されたメソッド全体を次に示します。
var any = _.some = _.any = function(obj, iterator, context) {
iterator || (iterator = _.identity);
var result = false;
if (obj == null) return result;
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
each(obj, function(value, index, list) {
if (result || (result = iterator.call(context, value, index, list))) return breaker;
});
return !!result;
};