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

第2引数以降をまとめた配列の各値を省いた第1引数(配列)が返る。

■使用例

var arr001 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];
var arr002 = [ 0, 1, 2, 10 ];
// re = [ 3, 4, 5, 6, 7, 8, 9 ];
var re = _.difference( arr001, arr002 );

■内部構造

  _.difference = function(array) {

// 第2引数をまとめた配列 = rest。
// 第2引数以降の引数(配列)が入れ子の場合は一つだけしか解消しない。第2引数以降の引数でObjectがある場合は、そのObjectの値は入らない。
    var rest = flatten(arguments, true, true, 1);

// _.filter() 処理された配列が返る。
    return _.filter(array, function(value){

// restに含まれる値がある時は「false」を返す。 
      return !_.contains(rest, value);
    });
  };

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