3 var value = require('../../object/valid-value')
4 , contains = require('./contains')
5 , byLength = require('./_compare-by-length')
7 , filter = Array.prototype.filter, push = Array.prototype.push
8 , slice = Array.prototype.slice;
10 module.exports = function (/*…list*/) {
12 if (!arguments.length) slice.call(this);
13 push.apply(lists = [this], arguments);
16 return lists.reduce(function (a, b) {
17 return filter.call(a, function (x) { return contains.call(b, x); });