📅  最后修改于: 2023-12-03 15:10:58.001000             🧑  作者: Mango
在开发过程中,我们经常会遇到需要从数组或字符串中去掉重复项的情况。在Javascript中,我们可以使用正则表达式来实现这个操作。本文将介绍如何使用正则表达式去除数组或字符串中的重复项。
Javascript中有一种数据结构叫Set,它可以存储非重复的值。我们可以通过将数组转换为Set,再将Set转换回数组来去除数组中的重复项。
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = [...new Set(arr)];
以上代码中的[...new Set(arr)]
先将数组arr
转换为Set,并使用[... ]
将Set转换回数组。
我们也可以使用正则表达式来去除数组中的重复项。以下代码中,使用了replace
方法,并传入一个正则表达式和一个回调函数,回调函数返回值将替换正则表达式匹配到的内容。
const arr = [1, 2, 2, 3, 3, 4, 5, 5];
const uniqueArr = arr.join(',').replace(/(\b\d+\b)(?=.*\b\1\b)/g, '').split(',');
以上代码中的正则表达式,使用了正则表达式的零宽断言和反向引用,\b
表示单词边界,\d+
表示数字,.*?
表示任意字符(非贪婪模式),\1
引用了第一个捕获组的值。
我们可以使用正则表达式来去除字符串中的重复项。以下代码中,使用了replace
方法,并传入一个正则表达式和一个回调函数,回调函数返回值将替换正则表达式匹配到的内容。
const str = 'abcdaefdaaghi';
const uniqueStr = str.replace(/(\w)(?=.*\1)/g, '');
以上代码中的正则表达式,使用了正则表达式的零宽断言和反向引用,\w
表示单词字符,.*?
表示任意字符(非贪婪模式),\1
引用了第一个捕获组的值。
本文介绍了如何使用正则表达式来去除Javascript数组或字符串中的重复项。使用Set的方法简单易懂,但使用正则表达式的方法可以更加灵活地去除重复项,可以改变正则表达式来适应不同的场景。