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

数组去重(JS)

输入:[1,1,1,2,2,3,3,4,5,1];输出:[1,2,3,4,5];输入:[1,1,1];输出:[1];
functionmyUniq(arr){// Create an empty object to keep track of unique elementsconstuniqueElements={};// Iterate through the array and add elements to the objectfor(constelementofarr){uniqueElements[element]=true;}// Create a new array from the object's keys (which are the unique elements)constresultArray=Object.keys(uniqueElements).map(Number);returnresultArray;}module.exports=myUniq;
  • 遍历与记录
for(constelementofarr){uniqueElements[element]=true;}

假设输入是 [1, 2, 1]:

遇到第一个 1:对象变成 { “1”: true }
遇到 2:对象变成 { “1”: true, “2”: true }
遇到第二个 1:对象依然是 { “1”: true, “2”: true }(重复的键被覆盖了)

  • 类型转换
constresultArray=Object.keys(uniqueElements).map(Number);
  • Object.keys(uniqueElements): 这个方法会提取对象中所有的键名,返回一个字符串数组,
    例如 [“1”, “2”]。
  • .map(Number): 因为对象的键名永远是字符串,而题目要求处理的是数字数组,所以需要通过 .map(Number) 将字符串 [“1”, “2”] 转回数字 [1, 2]。

这种方法的逻辑是:“先把数字存成对象的标签(自动去重),再把标签撕下来转回数字。”

http://www.jsqmd.com/news/120086/

相关文章:

  • 高职金融科技应用专业可考取的金融科技类证书
  • NPM2100 支持的电池类型
  • (100分)- 报数游戏(Java JS Python)
  • 大专市场营销专业可考取的实用证书
  • NPM2100 超低功耗模式
  • 达梦数据库与部分的联动使用
  • (100分)- ABR 车路协同场景(Java JS Python)
  • 动态 IP 在爬虫、跨境电商如何避开封禁陷阱
  • nPM2100 自带标准电池模型
  • 完整教程:数据结构**排序** 超越Arrays.sort() 探索Java排序算法的奥秘与魅力
  • 在Photoshop中导出小于100KB的图片:推荐使用“存储为Web所用格式”
  • Spark与Kafka整合:构建实时数据管道完整教程
  • 非线性最优化问题求解器Ipopt介绍
  • (100分)- 表达式括号匹配(Java JS Python C)
  • npm2100 超高效升压转换器
  • 我的256天创作纪念日
  • NPM2100 电池电量估算
  • Windows系统文件inetmib1.dll丢失损坏 下载修复方法
  • java计算机毕业设计网络探店 基于大数据的美食探店可视化平台 互联网餐饮探店数据爬取与分析系统
  • 紫金桃源:不止是沈阳新市府纯别墅,更是 N 种生活的生长容器
  • PromQL 核心语法解析
  • Windows系统文件inetcomm.dll丢失损坏 下载修复方法
  • Boost电路的右半平面零点
  • 云底座 amp; 性能优化 90 天每日打卡计划
  • linux centos7.9 中文乱码
  • Tableau入门指南:大数据可视化从零到精通
  • springcloud springboot nacos版本对应 - 指南
  • 智能AI图像识别之建筑物立面缺陷识别 小区违规搭建识别 小区垃圾堆积识别 违规停车识别 建筑物墙面缺陷识别yolo数据集10314期
  • 云底座 amp; 性能优化 90 天提升 工具与学习资源清单
  • java计算机毕业设计网络流行语资源库建设及实现 网络热词共享与语义标注平台 互联网流行语知识图谱与检索系统