技术文摘
js字符串查重方法
2025-01-09 17:49:42 小编
js字符串查重方法
在JavaScript编程中,字符串查重是一个常见的需求。无论是处理用户输入、分析文本数据还是进行数据清洗,准确地找出重复的字符串都至关重要。下面将介绍几种实用的js字符串查重方法。
利用数组的indexOf方法
这种方法简单直接。首先将字符串数组化,然后通过遍历数组,使用indexOf方法来检查每个元素第一次出现的位置。如果当前位置不等于第一次出现的位置,那就说明该字符串是重复的。示例代码如下:
function checkDuplicatesWithIndexOf(arr) {
let duplicates = [];
for (let i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i])!== i) {
if (duplicates.indexOf(arr[i]) === -1) {
duplicates.push(arr[i]);
}
}
}
return duplicates;
}
let stringArray = ['apple', 'banana', 'apple', 'cherry', 'banana'];
console.log(checkDuplicatesWithIndexOf(stringArray));
使用Set数据结构
Set是ES6中新增的数据结构,它的成员值都是唯一的。我们可以利用这个特性来查重。将字符串数组中的元素依次添加到Set中,如果添加失败(说明元素已存在),则该元素是重复的。代码如下:
function checkDuplicatesWithSet(arr) {
let set = new Set();
let duplicates = [];
for (let str of arr) {
if (set.has(str)) {
if (!duplicates.includes(str)) {
duplicates.push(str);
}
} else {
set.add(str);
}
}
return duplicates;
}
let stringArray2 = ['dog', 'cat', 'dog', 'bird', 'cat'];
console.log(checkDuplicatesWithSet(stringArray2));
借助对象属性
创建一个空对象,将字符串作为对象的属性名。在遍历数组时,如果对象中已经存在该属性,说明字符串重复。示例代码如下:
function checkDuplicatesWithObject(arr) {
let obj = {};
let duplicates = [];
for (let str of arr) {
if (obj[str]) {
if (!duplicates.includes(str)) {
duplicates.push(str);
}
} else {
obj[str] = true;
}
}
return duplicates;
}
let stringArray3 = ['red', 'blue','red', 'green', 'blue'];
console.log(checkDuplicatesWithObject(stringArray3));
以上这些js字符串查重方法各有优劣,在实际应用中,需要根据具体的场景和数据规模来选择合适的方法,以达到最佳的性能和效果。
- CS&ML 博士厌 C++ 用 Rust 重写 Python 扩展并总结九条规则
- 微服务架构落地的七个阶段模型
- 数据摘要常见方法漫谈
- 面试系列:不同返回类型非方法重载的原因
- QA 在软件开发生命周期中的引入是工程师的最佳实践遵循
- 前端新世代构建,Esbuild 的新奇玩法
- 盘点可在线编辑编译的线上编辑器
- 读博五年,我凝练的七条助你“少走弯路”的真理
- 生产故障:Kafka 消息发送延迟几十秒的元凶竟是...
- 欢聚时代四年多经验的 Java 大厂面试面经
- Python 多线程与多进程终于梳理清晰,太棒了!
- Python 神操作:在 Excel 中画画
- Go 启动参数加载的实现方法
- 有趣面试题:用三个字节存储年月日之法
- 前端架构师的统一团队代码风格三绝招