/**
* 排除集合中的值
* 支持多个数组
*
* @private
* @param {Array} array 要检查的数组.
* @param {Array} values 要排除的值
* @returns {Array} 返回一个过滤值后的新数组
*
* difference([1,2,3],[2],[3])
* // => [1]
*/
const difference = <T>(arrar: Array<T>, ...values: Array<Array<T>>) => {
// 要检查的数组为空
if (arrar.length < 1) [];
// 无排除值
if (values.length < 1) return arrar;
// 过滤值
const container = values.flat();
const result = arrar.filter((v) => {
return !container.includes(v);
});
return result;
};
export default difference;
import difference from "../src/difference";
const s = [1, 4, 4, 5, 6, 7];
const s1 = [5, 6, 7];
const s2 = [4];
const result = difference(s, s1, s2);
console.log(result); // [1]
个人作品
ip定位查询浏览器插件
老虎优惠券浏览器插件