UNPKG

d2-ui

Version:
40 lines (33 loc) 1.25 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = arrayDifference; var _arrayUnique = require('./arrayUnique'); var _arrayUnique2 = _interopRequireDefault(_arrayUnique); var _arrayContains = require('./arrayContains'); var _arrayContains2 = _interopRequireDefault(_arrayContains); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * * @param {Array} array1 * @param {Array} array2 * @param {boolean} biDirectional False returns A-B while true returns A-B concat B-A * @returns {Array} * * @throws {TypeError} When `filter` can not be found on `array`. This generally happens when the array is `null` or `undefined` * * @example * const a = [1, 2]; * const b = [1, 3]; * difference(a, b) // returns: [2] * difference(a, b, true) // returns: [2, 3] */ function arrayDifference(array1, array2, biDirectional) { return (0, _arrayUnique2.default)(array1.filter(function (item) { return !(0, _arrayContains2.default)(array2, item); }).concat(biDirectional === true ? array2.filter(function (item) { return !(0, _arrayContains2.default)(array1, item); }) : [])); } //# sourceMappingURL=arrayDifference.js.map