如何在 JavaScript 中找到两个数组的对称差

发布: (2026年1月7日 GMT+8 15:07)
2 min read
原文: Dev.to

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)包含两个原始数组的对称差——即仅出现在其中一个数组中的值。


这种方法简单、易读且易于理解,是初学者的不错选择。欢迎在评论中分享你的解决方案! 🔥

Back to Blog

相关文章

阅读更多 »

精通中级 JavaScript

《精通中级 JavaScript》封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev...