J

JavaScript 中删除数组中重复项的 3 种方法

2025-06-07

JavaScript 中删除数组中重复项的 3 种方法

让我们检查一下,很多次(或很少)需要删除数组中给出的重复元素,我不知道......这可能是因为你必须从超级打印一个列表,删除一个在表格中重复记录的学生,无数的事情,所以让我们看看一些方法来做到这一点:

1)使用集合

使用 Set(),将创建一个唯一值的实例,隐式使用该实例将删除重复项。

因此我们可以利用这个实例,然后我们必须将该实例转换为一个新的数组,就是这样:



let chars = ['A', 'B', 'A', 'C', 'B'];
let uniqueChars = [...new Set(chars)];

console.log(uniqueChars);


Enter fullscreen mode Exit fullscreen mode

输出:



['A', 'B', 'C']


Enter fullscreen mode Exit fullscreen mode

2)使用indexOf()和filter()方法

indexOf() 方法返回数组中元素第一次出现的索引:



let chars = ['A', 'B', 'A', 'C', 'B'];
chars.indexOf('B');


Enter fullscreen mode Exit fullscreen mode

输出:



1


Enter fullscreen mode Exit fullscreen mode

重复元素是索引与其 indexOf() 值不同的元素:



let chars = ['A', 'B', 'A', 'C', 'B'];

chars.forEach((element, index) => {
    console.log(`${element} - ${index} - ${chars.indexOf(element)}`);
});


Enter fullscreen mode Exit fullscreen mode

输出:



A - 0 - 0
B - 1 - 1
A - 2 - 0
C - 3 - 3
B - 4 - 1


Enter fullscreen mode Exit fullscreen mode

为了消除重复,filter() 方法仅用于包含索引与其 indexOf 值匹配的元素,因为我们知道 filer 方法根据对其执行的操作返回一个新数组:



let chars = ['A', 'B', 'A', 'C', 'B'];

let uniqueChars = chars.filter((element, index) => {
    return chars.indexOf(element) === index;
});

console.log(uniqueChars);


Enter fullscreen mode Exit fullscreen mode

输出:



['A', 'B', 'C']


Enter fullscreen mode Exit fullscreen mode

如果我们碰巧需要重复项,我们可以稍微修改一下我们的函数,只需改变我们的规则即可:



let chars = ['A', 'B', 'A', 'C', 'B'];

let dupChars = chars.filter((element, index) => {
    return chars.indexOf(element) !== index;
});

console.log(dupChars);


Enter fullscreen mode Exit fullscreen mode

输出:



['A', 'B']


Enter fullscreen mode Exit fullscreen mode

3)使用 includes() 和 forEach() 方法

如果元素在数组中,则 include() 函数返回 true,否则返回 false。

下面的示例迭代数组的元素,并仅将尚不存在的元素添加到新数组中:



let chars = ['A', 'B', 'A', 'C', 'B'];

let uniqueChars = [];
chars.forEach((element) => {
    if (!uniqueChars.includes(element)) {
        uniqueChars.push(element);
    }
});

console.log(uniqueChars);


Enter fullscreen mode Exit fullscreen mode

输出:



['A', 'B', 'C']  


Enter fullscreen mode Exit fullscreen mode

基本上,我们有多种方法可以解决此类问题,因此,不要再陷入困境,您可以使用任何一种您喜欢的方法。

如果您喜欢这些内容,您可以在我的社交网络上关注我@soyleninjs

科菲

文章来源:https://dev.to/soyleninjs/3-ways-to-remove-duplicates-in-an-array-in-javascript-259o
PREV
零知识证明编码入门
NEXT
使用 Docker、NGINX 和 AWS ELB 构建高可用性 Node.js 应用程序 什么是负载均衡?NGINX 和 AWS ELB 作为负载均衡器 架构概述 Node.js 应用程序 启动 EC2 服务器 容器化应用程序和 NGINX 配置 使用 AWS ALB 安装系统 结论 资源