如何在 JavaScript 中找到两个数组的对称差
Source: Dev.to
方法概述
我们比较两个数组,并返回一个新数组,其中只包含存在于一个数组但不同时存在于两个数组的值。换句话说,我们去除同时出现在两个数组中的值。
步骤 1:过滤 arrayOne
arrayOne.filter(item => !arrayTwo.includes(item))
对于 arrayOne 中的每个元素,检查它是否未包含在 arrayTwo 中。只有在 arrayTwo 中不存在的值才会被返回。
步骤 2:过滤 arrayTwo
arrayTwo.filter(item => !arrayOne.includes(item))
这一次我们只返回未包含在 arrayOne 中的值。
步骤 3:合并结果
const result = arrayOne
.filter(item => !arrayTwo.includes(item))
.concat(arrayTwo.filter(item => !arrayOne.includes(item)));
我们使用 Array.prototype.concat() 将两个过滤后的数组合并。最终数组(result)包含两个原始数组的对称差——即仅出现在其中一个数组中的值。
这种方法简单、易读且易于理解,是初学者的不错选择。欢迎在评论中分享你的解决方案! 🔥