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

如何获取两个数组的差异元素?提取数组a中不在数组b内的元素存入数组c

提取数组中独有的元素实现方案

要实现示例中a.compare(b)提取数组a中不存在于数组b的元素,有以下几种简洁的实现方式:

方法一:扩展数组原型(匹配示例调用方式)

利用数组的filter和includes方法快速过滤元素:

Array.prototype.compare = function(targetArr) {
  return this.filter(item => !targetArr.includes(item));
};

// 测试示例
let a = ['1', '2', '3'];
let b = ['1', '2'];
let c = a.compare(b);
console.log(c); // 输出 ['3']

原理:filter遍历当前数组,通过includes判断元素是否存在于目标数组,保留不存在的元素。

方法二:兼容旧环境的原型扩展

如果需要兼容不支持includes的旧浏览器,可替换为indexOf:

Array.prototype.compare = function(targetArr) {
  return this.filter(item => targetArr.indexOf(item) === -1);
};

原理:indexOf返回元素在数组中的索引,不存在则返回-1,以此作为判断依据。

方法三:独立函数(避免污染数组原型)

如果不想修改数组原型,可封装为独立函数:

function getUniqueElements(sourceArr, targetArr) {
  return sourceArr.filter(item => !targetArr.includes(item));
}

// 测试示例
let a = ['1', '2', '3'];
let b = ['1', '2'];
let c = getUniqueElements(a, b);
console.log(c); // 输出 ['3']

内容的提问来源于stack exchange,提问作者Matias Bertoni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:10:36