lodash函数库----difference

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

posted @ 2021-01-09 21:48  破壳而出的蝌蚪  阅读(375)  评论(0编辑  收藏  举报