当前位置: 首页 > 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.rkmt.cn/news/132166.html

相关文章:

  • 大专市场营销专业可考取的实用证书
  • NPM2100 超低功耗模式
  • (100分)- ABR 车路协同场景(Java JS Python)
  • PromQL 核心语法解析
  • Boost电路的右半平面零点
  • NPM2100 LDO
  • 智慧城市与智慧校园之安防暴力检测 校园打架斗殴检测 街边暴力躁动识别 危险物品识别 智能安防 安防领域智能化 数据集第10319期 (1)
  • AI Agent的概念形成:模拟LLM的抽象思维过程
  • 云底座 amp; 性能优化 90 天技术提升落地清单
  • 高中语法练习解析100篇-001 - new
  • 智慧铁路之受电弓接触点识别 铁路输电线路鸟巢识别 铁路异物入侵巡检识别 铁路风筝识别 列车绝缘子检测 轨道交通场景下异物识别 户外线缆及附属部件的智能监测 10325期
  • 链动2+1模式AI智能名片S2B2C商城小程序中电商直播的应用机制与价值创新研究
  • 【全球AI伦理治理】
  • 云底座管理与操作系统性能质量保证技术升华
  • 三折叠手机推荐哪个品牌?三星Galaxy Z TriFold用创新重新定义旗舰体验
  • 三折叠手机有什么使用场景和优势?三星Galaxy Z TriFold给出答案
  • springboot购物推荐网站的设计与实现(11541)
  • TEST_40
  • ret2syscall及mprotect的利用姿势
  • Thinkphp和Laravel水果购物商城vue
  • 当一部手机定价近两万:三星三折叠价格和功能如何匹配?
  • JVM性能调优案例-OOM案例
  • CVE-2022-0779
  • CVE-2022-0779
  • DaemonSet service ingress的 - 教程
  • 用 .NET MAUI 10 + VS Copilot 从 0 开发一个签到 App(一)
  • 人工智能AGI
  • 一文读懂大模型微调:从全参数到LoRA,打造你的专属AI专家
  • 为什么食管癌发现都是晚期--转自杭州日报
  • 2026行业展望——大模型,非常详细收藏这一篇就够了