admin 管理员组

文章数量: 1184232


2024年3月26日发(作者:百赞小程序)

js两个数组取差集算法

在计算机编程中,数组操作是一项非常常见的操作,数组的差集

操作也是非常常见的,它的定义是取两个数组的不同元素,其中一个

数组中有,另一个数组中没有的元素。用js来实现取差集的算法非

常的简单,本文主要介绍一下如何借助js来实现取差集。

首先,JS两个数组取差集的基本步骤是:

(1)创建一个空数组,用于存放差集结果;

(2)遍历第一个数组,检查第二个数组中是否存在相同的元素,

如果不存在就将元素添加到空数组中。

接下来,用实例说明如何借助js实现取差集:

假设有以下两个数组:

const arr1 = [1, 2, 3, 4, 5];

const arr2 = [3, 4, 5, 6, 7];

以上两个数组,取出不同元素,我们可以用如下的代码实现:

//义一个空数组

const diffArray = [];

//历第一个数组

h(item => {

//果第二个数组中不存在该元素,则将其push到diffArray中

if (!es(item)) {

(item);

}

- 1 -

});

//历第二个数组

h(item => {

//果第一个数组中不存在该元素,则将其push到diffArray中

if (!es(item)) {

(item);

}

});

//印diffArray

(diffArray); // [1, 2, 6, 7]

以上代码就是用js来实现取差集的算法,通过遍历两个数组,

检查是否存在相同的元素,如果不存在就将其push到新的数组

diffArray中,实现取差的功能。

除了上面介绍的用js实现取差集的算法,还有另外一种算法,

可以用ES6中的filter方法来实现。也就是用第一个数组的每个元

素作为基准,去第二个数组中过滤掉一样的元素,剩下的就是差集结

果。代码如下:

//第一个数组赋值给diffArray

const diffArray = arr1;

//历第二个数组,检测是否存在于第一个数组,存在就删除

h(item => {

diffArray = (ele => ele !== item);

- 2 -

});

//印diffArray

(diffArray); // [1, 2]

用filter方法实现的取差集的算法更简洁,只需要一步操作就

可以实现取差集的功能,但是它也有一定的局限性,即只能处理数值

类型的数组,若要处理对象型数组,则需要定义其他规则。

以上就是JS两个数组取差集算法的基本实现原理,其实这种算

法可以用来处理多个数组,一个接一个的处理,实现取并集、取交集

的功能,甚至可以处理多维数组的取差集。它具有计算效率高,算法

简单等优点,因此受到了广泛的应用。

- 3 -


本文标签: 数组 实现 算法