【Underscore.js】_.everyを読んだ
jashkenas/underscoreの_.everyを読んだ。
概要
_.every(list, [predicate], [context])
listの値をpredicateに渡した時に、すべてtrueであればtrueを返す。
var list = [1, 2, 3, 4, 5]; var x = _.every(list, function(n) { return n > 0; }); console.log(x); // true var y = _.every(list, function(n) { return n % 2 === 0; }); console.log(y); // false
ソースコード
_.every = _.all = function(obj, predicate, context) { predicate = cb(predicate, context); var keys = !isArrayLike(obj) && _.keys(obj), length = (keys || obj).length; for (var index = 0; index < length; index++) { var currentKey = keys ? keys[index] : index; if (!predicate(obj[currentKey], currentKey, obj)) return false; } return true; };
要素の1つ1つに関数を適用して、ひとつでもfalseがあればreturnしている。