every() | Underscore JS 日本語リファレンス

第1引数「配列」の値の全てが第2引数の関数の条件を満たしている時に true を返す。1つでも満たしていない値があれば false を返す。

■使用例

var arr = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var even = [ 2, 4, 6, 8, 10 ];

var func = function( val ){
	return val % 2 == 0;
}

// re = false
var re = _.every( arr, func );

// re2 = true
var re2 = _.every( even, func );

■内部構造

  _.every = _.all = function(obj, predicate, context) {
 
// 第3引数が入力されていない、第2引数が関数ならそのまま。
    predicate = cb(predicate, context);

// 配列だったら keys = undefined 、Objectだったら keys は Object の key の配列。
    var keys = !isArrayLike(obj) && _.keys(obj),

// length 抽出処理。
        length = (keys || obj).length;

// 配列(Object)の各値を処理。
    for (var index = 0; index < length; index++) {    	
      var currentKey = keys ? keys[index] : index;

// predicate の条件を満たしていない値の時にif( true )になるので false が返される。
      if (!predicate(obj[currentKey], currentKey, obj)) return false;
    }
    return true;
  };

このページのトップへ戻る