Blame view

node_modules/es5-ext/array/#/intersection.js 591 Bytes
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  "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);
  		});
  	});
  };