35

私は配列の配列を持っています:

var selected = [[1, 4, 5, 6], [1, 2, 3, 5, 7], [1, 4, 5, 6], [1, 7]];

Underscore.js には便利なユニオン メソッドと交差メソッドがありますが、これらは各配列を個別に引数として渡すことに作用します。

セット操作を実行する配列の数が任意の場合、どうすればよいですか?

この質問は同様のものに対処しますが、オブジェクトを含む配列に対するものです。

4

4 に答える 4

60

applyメソッドに任意の数の引数を渡すために使用できます。

ユニオンの場合:

// Outputs [1, 4, 5, 6, 2, 3, 7]
var selectedUnion = _.union.apply(_, selected);

交差点の場合:

// Outputs [1]
var selectedIntersection = _.intersection.apply(_, selected);
于 2013-04-26T05:42:08.167 に答える
5

reduceを使用しないのはなぜですか?

_.reduce(selected,function(result,a){
    return _.intersection(result,a);
});
于 2016-02-24T12:19:31.667 に答える
4

var centrifuge = _.spread(_.intersection);

alert(centrifuge([
  [1, 4, 5, 6],
  [1, 2, 3, 5, 7],
  [1, 4, 5, 6],
  [1, 7]
]))


alert(centrifuge([
  [1, 4, 5, 6],
  [1, 2, 4, 6, 3, 5, 7]
]))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.12.0/lodash.js"></script>

var 遠心分離機 = .spread( .intersection);

于 2016-05-10T03:37:32.803 に答える