array/diffArr.jsjavascript
/**
 * 返回两个数组之间的差集
 * @function diffArr
 * @memberof module:array
 * @param {Array} a 基准数组
 * @param {Array} b 用于排除值的数组
 * @returns {Array} 差集数组,不修改输入
 * @throws {TypeError} 参数不是数组时抛出
 * @example
 *  diffArr([1, 2, 3], [2]) // [1, 3]
 */
function diffArr(a, b) {
  if (!Array.isArray(a) || !Array.isArray(b)) {
    throw new TypeError('a and b must be arrays')
  }
  const setB = new Set(b)
  return a.filter(item => !setB.has(item))
}

export default diffArr