X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=node_modules%2Funcss%2Fnode_modules%2Flodash%2FintersectionWith.js;fp=node_modules%2Funcss%2Fnode_modules%2Flodash%2FintersectionWith.js;h=e6cbe63605804d03eaa6a7cb4803d7dfef338693;hp=0000000000000000000000000000000000000000;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad diff --git a/node_modules/uncss/node_modules/lodash/intersectionWith.js b/node_modules/uncss/node_modules/lodash/intersectionWith.js new file mode 100644 index 000000000..e6cbe6360 --- /dev/null +++ b/node_modules/uncss/node_modules/lodash/intersectionWith.js @@ -0,0 +1,40 @@ +var arrayMap = require('./internal/arrayMap'), + baseIntersection = require('./internal/baseIntersection'), + last = require('./last'), + rest = require('./rest'), + toArrayLikeObject = require('./internal/toArrayLikeObject'); + +/** + * This method is like `_.intersection` except that it accepts `comparator` + * which is invoked to compare elements of `arrays`. The comparator is invoked + * with two arguments: (arrVal, othVal). + * + * @static + * @memberOf _ + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of shared values. + * @example + * + * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; + * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; + * + * _.intersectionWith(objects, others, _.isEqual); + * // => [{ 'x': 1, 'y': 2 }] + */ +var intersectionWith = rest(function(arrays) { + var comparator = last(arrays), + mapped = arrayMap(arrays, toArrayLikeObject); + + if (comparator === last(mapped)) { + comparator = undefined; + } else { + mapped.pop(); + } + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped, undefined, comparator) + : []; +}); + +module.exports = intersectionWith;