当前位置: 首页 > news >正文

JS 字符串拼接并去重

1、includes

        循环数组将某个字段拼接成新的字符串并去重(数组里面包含的一个对象,或者其他都OK)

// 定义一个数组
let arr=[.......]
// 定义拼接的字符串 
let a=''
//循环数组将里面某个字段拼接在一起并去重
arr.forEach(item => {if(!a.includes(item.createUserName)){a = a + item.createUserName + ','}
})// 去除最后拼接的逗号
let b = a.replace(/,$/, "");

2、Set

        使用 Set 数据结构来实现 JavaScript 字符串的去重。Set 是一种不允许重复值的集合,可以通过将字符串转换为数组,然后将数组转换为 Set,最后将 Set 转换回数组来去重。

以下是一个示例代码:

function removeDuplicates(str) {// 将字符串转换为数组let arr = str.split('');// 将数组转换为 Setlet uniqueChars = new Set(arr);// 将 Set 转换回数组let result = Array.from(uniqueChars);// 将数组转换回字符串return result.join('');
}let str = 'aabbcc';
let result = removeDuplicates(str);
console.log(result); // 输出 "abc"

可以使用 Set 数据结构来实现字符串去重。Set 是 ES6 中新增的数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。或者简写:

let strArr = ['a', 'b', 'b', 'c'];
let uniqueStr = [...new Set(strArr)].join('');
console.log(uniqueStr);  // 输出 "abc"

在上面的代码中,首先将字符串转换为数组,然后使用 set 去除重复的字符。最后将 Set 转换回数组,并将数组转换回字符串。或者

function removeDuplicates(str) {let seen = new Set();let result = '';for (let char of str) {if (!seen.has(char)) {seen.add(char);result += char;}}return result;
}// 示例
let str = "aabbcddd";
let noDuplicates = removeDuplicates(str);
console.log(noDuplicates); // 输出 "abcd"

      这段代码定义了一个removeDuplicates函数,它接受一个字符串作为参数,然后使用Set数据结构跟踪已经出现过的字符。如果字符尚未出现在Set中,它将被加入到结果字符串中,并加入到Set中。这样,结果字符串中的每个字符都是唯一的。

http://www.lryc.cn/news/474010.html

相关文章:

  • opencv 图像预处理
  • SAP B1 功能模块字段介绍 - 价格清单(下)
  • 传智杯 第六届-复赛-D
  • Java - 数组实现大顶堆
  • ifuse挂载后,在python代码中访问iOS沙盒目录获取app日志
  • Windows WSL环境下安装 pytorch +ROCM 支持AMD显卡
  • uniapp中skymap.html(8100端口)提示未登录的排查与解决方法
  • 训练模型时梯度出现NAN或者INF(禁用amp的不同level)
  • Maven核心概念
  • Sonatype Nexus 部署手册
  • TLV320AIC3104IRHBR 数据手册 一款低功耗立体声音频编解码器 立体声耳机放大器芯片麦克风
  • (8)结构体、共用体和枚举类型数据
  • Jedis操作和springboot整合redis
  • 基于AI大模型的复杂扫描件PDF信息提取与规整
  • 为什么https先非对称加密,然后对称加密?
  • 【Coroutines】Full Understanding of Kotlinx.Corutines Framework
  • Python面向对象,实现图片处理案例,支持:高斯模糊、Canny边缘检测、反转边缘图像、生成手绘效果、调亮度......等等
  • SOLID - 依赖倒置原则(Dependency Inversion Principle)
  • 【.NET 8 实战--孢子记账--从单体到微服务】--需求拆分与规划
  • 在macOS的多任务处理环境中,如何平衡应用的性能与用户体验?这是否是一个复杂的优化问题?如何优化用户体验|多任务处理|用户体验|应用设计
  • Vscode配置CC++编程环境的使用体验优化和补充说明
  • 十个方法杜绝CAD图纸泄密风险!2024年图纸防泄密指南!「必看」
  • 技术干货|HyperMesh CFD功能详解:虚拟风洞 Part 1
  • 022集——统计多条线的总长度(CAD—C#二次开发入门)
  • 大模型重要技术系列三:高效推理
  • Android 刘海屏适配指南
  • 微信小程序服务通知
  • Ubuntu使用Qt虚拟键盘,支持中英文切换
  • 泰州农商行
  • 扫雷(C语言)