资讯专栏INFORMATION COLUMN

JavaScript数组去重的总结

Tonny / 697人阅读

摘要:数组去重方法的总结前言在中数组是比较常用的,本文中总结了下数组去重的几种常用方法,如有问题,请指正。

JavaScript数组去重方法的总结 前言

在JavaScript中数组是比较常用的,本文中总结了下数组去重的几种常用方法,如有问题,请指正。

简单粗暴的一种,ES6中set方法:
var arr = [1,2,2,3,3,4,5,5];
console.log([...new Set(arr)])  //[1, 2, 3, 4, 5]
遍历数组,建立新数组,利用indexOf()判断是否存在于新数组中,不存在则push到新数组,最后返回新数组:
function removeSame(arr){
    var ret = [];
    for(var i=0,j=arr.length;i
遍历数组,利用object对象保存数组值,判断数组值是否已经保存在object中,未保存则push到新数组并用object[arrayItem]=1的方式记录保存:
function removeSame(arr){
    var temp = {},ret = [];
    for (var i = 0,j=arr.length;i
根据数组下标判断法, 遍历数组,利用indexOf()判断元素的值是否与当前索引相等,如相等则加入
function removeSame(arr){
    var ret = [];
    arr.forEach(function(ele,index){
        if(arr.indexOf(ele) === index){
            ret.push(ele)
        }
    })
    return ret;
}
var arr3 = ["apple","apple","orange","orange","banana"]
console.log(removeSame(arr3))    //["apple", "orange", "banana"]
数组先进行排序,然后比较原数组与新数组,一头一尾进行去重:
function deleteSame(arr){
    var ret = [],end;
    debugger;
    arr.sort();   // ["apple","apple","banana","orange","orange",];
    end = arr[0];
    ret.push(arr[0]);
    for(var i = 1; i
利用filter()方法循环对数组中的元素调用callback函数, 如果返回true 保留,如果返回false 过滤掉,  返回新数组,老数组不变
var arr_unique = ["apple","apple","orange","orange","banana"].filter(function(element,index,array){
    return array.indexOf(element) === index;
})
console.log(arr_unique) //["apple", "orange", "banana"]

简单的总结了6种方法,如有不足请指正,可以继续补充,大家共同学习。

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

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

相关文章

  • <javaScript> 数组重的方法总结(2017年)

    摘要:现在要求去重下面这个数组测试重复重复方法一测试重复重复去重后测试重复是新加的集合集合中的值不会重复。欢迎大家一起讨论提出新的去重方法。有任何错误请在评论指出。 现在要求去重下面这个数组 [1, 2, 3, 3, 3, 0, 1, 2, 测试, 重复, 重复, NaN, NaN, false, false]; 方法一:ES6 Set() let arr = [1, 2, 3, 3, 3,...

    hightopo 评论0 收藏0
  • <javaScript> 数组重的方法总结(2017年)

    摘要:现在要求去重下面这个数组测试重复重复方法一测试重复重复去重后测试重复是新加的集合集合中的值不会重复。欢迎大家一起讨论提出新的去重方法。有任何错误请在评论指出。 现在要求去重下面这个数组 [1, 2, 3, 3, 3, 0, 1, 2, 测试, 重复, 重复, NaN, NaN, false, false]; 方法一:ES6 Set() let arr = [1, 2, 3, 3, 3,...

    YanceyOfficial 评论0 收藏0
  • js基本操作-数组去重

    摘要:基本操作数组去重写在前面数组去重经常出现在前端招聘的笔试题里,比如有数组,请用实现去重函数,使得返回作为笔试题,考点有二正确。基本介绍文章主要是对数组去重的常用方法进行介绍。 js基本操作-数组去重 写在前面 JavaScript 数组去重经常出现在前端招聘的笔试题里,比如: 有数组 var arr = [a, b, c, 1, 0, c, 1, , 1, 0],请用 JavaScr...

    blastz 评论0 收藏0
  • JavaScript专题之数组去重

    摘要:专题系列第三篇,讲解各种数组去重方法,并且跟着写一个前言数组去重方法老生常谈,既然是常谈,我也来谈谈。它类似于数组,但是成员的值都是唯一的,没有重复的值。 JavaScript 专题系列第三篇,讲解各种数组去重方法,并且跟着 underscore 写一个 unique API 前言 数组去重方法老生常谈,既然是常谈,我也来谈谈。 双层循环 也许我们首先想到的是使用 indexOf 来循...

    fsmStudy 评论0 收藏0
  • JS专题之数组去重

    摘要:将元素作为对象的键,默认键对应的值为如果对象中没有这个键,则将这个元素放入结果数组中去。 前言 数组去重在日常开发中的使用频率还是较高的,也是网上随便一抓一大把的话题,所以,我写这篇文章目的在于归纳和总结,既然很多人都在提的数组去重,自己到底了解多少呢。又或者是如果自己在开发中遇到了去重的需求,自己能想到更好的解决方案吗。 这次我们来理一理怎么做数组去重才能做得最合适,既要考虑兼容性,...

    only_do 评论0 收藏0

发表评论

0条评论

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