/**
 * 排除集合中的值
 * 支持多个数组
 *
 * @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定位查询浏览器插件
老虎优惠券浏览器插件