heyujie
2021-05-24 4885600ecc369aa2e30a65de8dd7a410f13c34df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"use strict";
 
var value    = require("../../object/valid-value")
  , contains = require("./contains")
  , byLength = require("./_compare-by-length")
  , filter   = Array.prototype.filter
  , push     = Array.prototype.push
  , slice    = Array.prototype.slice;
 
module.exports = function (/* …list*/) {
    var lists;
    if (!arguments.length) slice.call(this);
    push.apply((lists = [this]), arguments);
    lists.forEach(value);
    lists.sort(byLength);
    return lists.reduce(function (list1, list2) {
        return filter.call(list1, function (item) { return contains.call(list2, item); });
    });
};