资讯专栏INFORMATION COLUMN

JS基础入门篇(十五)—数组去重

Yi_Zhi_Yu / 3462人阅读

摘要:目的把数组中重复的内容去掉。思路每次取出数组一项和其他的所有项比较如果比较有相同的把重复的这个后面的删掉。是位置,表示长度。改进思路三键名是数据类型的前三位组成的字符串。思路四使用的方法可以去除数组内重复的表明展开数组的每一项

目的:把数组中重复的内容去掉。
eg:将数组[2, 3, 1, 4, 2, 2, 3, 4, 1, 5,"1"]变成[2, 3, 1, 4, 5, "1"]。

思路1:

每次取出数组 一项,和其他的所有项比较
如果比较 有相同的 , 把重复的这个(后面的)删掉。

思路二:
准备一个 空数组 res
    然后遍历 arr
        如果 arr中这一项 在 res中不存在,
            则把这一项 放进 res中
        如果 存在
            什么都不做
            
最后得到的res,就是去重得到后的数组。

思路一和思路二存在的缺点:如果数组内容中含有两个NAN,由于NAN不等于它自己。故删选不出来。

思路三:
统计所有项出现的次数,形成一个对象
        对象的键名 是 每一项的元素 ,
        对象的键值 是 该项出现的次数.
最后我们只需要 统计所有的键名就可以了

这个方法存在的问题就是:

1.如果数组中存在数字1,和字符串“1”,当遍历键名的时候,两则是一样的,得到的数组会少了数字1.
2.键名是以字符串的方式存储的,插入数组的时候,也是以字符串的方式存储到数组中去。
改进思路三
思路四
使用 es6的Set ...
   

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107854.html

相关文章

  • JS基础入门十五)—数组去重

    摘要:目的把数组中重复的内容去掉。思路每次取出数组一项和其他的所有项比较如果比较有相同的把重复的这个后面的删掉。是位置,表示长度。改进思路三键名是数据类型的前三位组成的字符串。思路四使用的方法可以去除数组内重复的表明展开数组的每一项 目的:把数组中重复的内容去掉。eg:将数组[2, 3, 1, 4, 2, 2, 3, 4, 1, 5,1]变成[2, 3, 1, 4, 5, 1]。 思路1: ...

    Youngdze 评论0 收藏0
  • JS基础入门十五)—数组去重

    摘要:目的把数组中重复的内容去掉。思路每次取出数组一项和其他的所有项比较如果比较有相同的把重复的这个后面的删掉。是位置,表示长度。改进思路三键名是数据类型的前三位组成的字符串。思路四使用的方法可以去除数组内重复的表明展开数组的每一项 目的:把数组中重复的内容去掉。eg:将数组[2, 3, 1, 4, 2, 2, 3, 4, 1, 5,1]变成[2, 3, 1, 4, 5, 1]。 思路1: ...

    YacaToy 评论0 收藏0
  • JS基础入门(三十五)—面向对象(二)

    摘要:如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的基础入门篇三十四面向对象一 如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)—面向对象(一)

    hedzr 评论0 收藏0
  • JS基础入门(三十五)—面向对象(二)

    摘要:如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的基础入门篇三十四面向对象一 如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)—面向对象(一)

    gyl_coder 评论0 收藏0
  • JS基础入门(三十五)—面向对象(二)

    摘要:如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的基础入门篇三十四面向对象一 如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)—面向对象(一)

    Donne 评论0 收藏0

发表评论

0条评论

Yi_Zhi_Yu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<