博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于数组去重的几种方法-------javascript描述
阅读量:4967 次
发布时间:2019-06-12

本文共 950 字,大约阅读时间需要 3 分钟。

  1. 第一种方法:借助json对象来实现,若json对象中无该属性则添加,否则不添加,最后返回json对象的属性,时间复杂度为O(n)
function deleteArrayRepeat(arr) {        var result = {};        var temp = [];        //将数组中各元素作为属性存到json对象中        for (var i = 0; i < arr.length; i++) {            if (!result[arr[i]]) {                result[arr[i]] = 0;          temp.push(arr[i]);            }        }return temp;    }

        2.第二种方法使用filter()方法和indexOf()方法。因为filter方法和indexOf方法本质上是一层for循环实现,因此时间复杂度为O(n*n);代码如下

function deleteArrayRepeat(arr){        return arr.filter(function(item,i){            return arr.indexOf(item)===i;        });    }

        3.第3种方法:使用indexOf()方法,时间复杂度为O(n*n);

function deleteArrayRepeat(arr){        var temp=[];        for(var i=0;i

   4.第四种方法:ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set本身是一个构造函数,用来生成Set数据结构。根据不允许重复值可以用于数组去重,set是类数组,使用Array.from方法可以将类数组转为数组。

var arr = [1,2,3,4,4,4];var set = new Set(arr);  //类数组 var newArr = Array.from(set);//

 

转载于:https://www.cnblogs.com/hxc555/p/5932618.html

你可能感兴趣的文章
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>
清除浮动
查看>>
PayPal(贝宝)支付接口、文档、IPN
查看>>
ORACLE 10G R2_执行计划中cost cardinality bytes cpu_cost io_cost解释
查看>>
本地存储
查看>>
MP3的播放与停止
查看>>
牛客(59)按之字形顺序打印二叉树
查看>>
JavaScript 图表库 xCharts
查看>>
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
Spring Cloud与微服务构建:微服务简介
查看>>
Babel 是干什么的
查看>>
cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
查看>>
CODE[VS] 1842 递归第一次
查看>>
20180418小测
查看>>
数字三角形
查看>>