如何用Lodash找出数组A中存在但数组B中不存在的元素?
用Lodash一步实现数组差集需求
嘿,你要找的其实就是Lodash的_.difference()函数!它完全能直接满足你的需求,不需要组合多个函数。
函数作用
_.difference(array, [values]) 会返回第一个数组中存在,但后续所有数组中都不存在的元素,刚好对应你要的「从A里移除B中包含的元素」的逻辑。
代码示例
const A = [1,2,3,4,5]; const B = [3,4,6]; const C = _.difference(A, B); console.log(C); // 预期输出: [1,2,5]
对比你之前的写法
你之前用的 _.intersection(A,_.xor(A,B)) 确实能得到正确结果,但属于间接实现:先通过_.xor(A,B)得到只在A或只在B中的元素,再和A取交集,最终筛选出只在A里的元素。而_.difference()是专门为这种「数组差集」场景设计的,写法更直观简洁。
另外补充个小知识点:_.difference()还支持传入多个排除数组,比如你想同时移除A中在B和C里的元素,可以直接写 _.difference(A, B, C),非常灵活。
内容的提问来源于stack exchange,提问作者Stack Tracer
相关产品推荐
相关产品推荐

