1 | var unique = require('./unique');
|
2 | var filter = require('./filter');
|
3 | var every = require('./every');
|
4 | var contains = require('./contains');
|
5 | var slice = require('./slice');
|
6 |
|
7 |
|
8 | /**
|
9 | * Return a new Array with elements common to all Arrays.
|
10 | * - based on underscore.js implementation
|
11 | */
|
12 | function intersection(arr) {
|
13 | var arrs = slice(arguments, 1),
|
14 | result = filter(unique(arr), function(needle){
|
15 | return every(arrs, function(haystack){
|
16 | return contains(haystack, needle);
|
17 | });
|
18 | });
|
19 | return result;
|
20 | }
|
21 |
|
22 | module.exports = intersection;
|
23 |
|
24 |
|