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