news 2026/8/7 4:29:11

数组去重(JS)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组去重(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]。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 19:25:46

紫金桃源:不止是沈阳新市府纯别墅,更是 N 种生活的生长容器

沈阳顶豪市场正迎来一场无声的价值分化:一边是堆砌奢石、风格趋同的传统顶豪;另一边,是深谙生活本质、专注空间与匠心的 “少数派”。紫金桃源,便是将主城稀缺低密土地与生长型空间哲学深度融合的标杆之作 —— 它不止是一套别墅&…

作者头像 李华
网站建设 2026/8/5 0:05:13

4.常用数据结构和单线程模型理解

Redis目前10种value类型,string,list,set,hash,sorted set,stream,geospatial,hyperloglog,bitmaps,bitfields。 redis针对数据结构底层实现的特化 在源码层面…

作者头像 李华
网站建设 2026/8/6 18:40:16

5.string类型

Redis中的字符串,直接就是按照2进制方式存储的(无任何编码转换)-> 2进制存储,那么不仅可以存储文本数据,还可以是整数、JSON、xml、2进制(图片、音频、视频...)-> 还是需要注意Redis是单线…

作者头像 李华