You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ES6单行代码实现数组补全及指定元素动态移除?

问题

现有三个数组:

Array1 = ["u101", "u102", "u103", "p101"];
Array2 = ["u101", "u102", "u103", "u104"];
Array3 = ["p101"]

需求为:对比Array1与Array2,将Array2中不存在于Array1的元素(如"u104")加入Array1;同时对比Array3,动态移除Array1中的对应元素(如"p101"),最终得到数组:

newArray = ["u101", "u102", "u103", "u104"];

请问能否使用JavaScript ES6版本的单行代码实现该需求?其他类似问题多为获取数组匹配/不匹配元素,而本需求是补全数组并移除指定元素。

解答

完全可以用ES6特性实现单行代码,具体实现如下:

const newArray = [...new Set([...Array1, ...Array2])].filter(item => !Array3.includes(item));

代码拆解说明:

  • [...Array1, ...Array2]:将Array1和Array2的元素合并为一个新数组,自动包含Array2中Array1没有的元素;
  • new Set(...):借助Set的唯一性特性,去除合并后数组里的重复元素;
  • [...new Set(...)]:将去重后的Set对象转换回数组格式;
  • .filter(item => !Array3.includes(item)):过滤掉所有存在于Array3中的元素,完成指定元素的移除。

这行代码一次性完成了补全缺失元素和移除指定元素两个需求,最终得到目标数组。

内容的提问来源于stack exchange,提问作者Gowtham Manthena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:48:16