JS数组去重(4种方法)
第一种:双重循环
var ary=[1,2,3,3,2,3,4,5]; for(var i=0;i<ary.length;i++){ for(var j=i+1;j<ary.length;j++){ if(ary[i]===ary[j]){ ary.splice(i,1); i--; } } } alert(ary);
第二种:新数组
var ary=[1,2,3,3,2,3,4,5]; var ary1=[]; for(var i=0;i<ary.length;i++){ if(ary1.indexOf(ary[i])==-1){ ary1.push(ary[i]); } } alert(ary1);
第三种:可以记录次数的对象去重
var ary=[1,2,3,3,2,3,4,5]; var obj={}; for(var i=0;i<ary.length;i++){ var cur=ary[i]; if(obj[cur]){ obj[cur]++; }else{ obj[cur]=1; } } var ary=[]; for(var attr in obj){ ary.push(attr); } alert(ary);
第四种:sort 思想
var ary=[1,2,3,3,2,3,4,5]; ary.sort(function(a,b){return a-b;}); for(var i=0;i<ary.length;i++){ if(ary[i]===ary[i+1]){ ary.splice(i,1); i--; } } alert(ary);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
js数组去重的方法汇总
三种方法 利用indexOf判断新数组 underscore.js中实际上也是使用的类似的indexOf //传入数组 function unique1(arr){ var tmpArr = []; for(var i=0; i<arr.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if(tmpArr.indexOf(arr[i]) == -1){ tmpArr.push(arr[i]); } } return tmp
-
js数组去重的hash方法
对于 JavaScript 数组去除重复项,现在有多种方法,其中一种是hash,如下: if (!Array.prototype.unique) { Array.prototype.unique = function () { var hash = {}, result = [], item; for (var i = 0; i < this.length; i++) { item = this[i]; if ( !hash[item] ) { hash[item] = true; result
-
史上最全JavaScript数组去重的十种方法(推荐)
一.前言: 我们在实际工作中,或者在面试找工作时,都会用到或者被问到一个问题,那就是"数组如何去重".是的,这个问题有很多种解决方案,看看下面的十种方式吧! 二.数组去重方式大汇总: Methods 1: 思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中. function unique(arr){ var res = [arr[0]]; for(var i=1; i<arr.length; i++){ var repea
-
js数组去重的三种常用方法总结
第一种是比较常规的方法 思路: 1.构建一个新的数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 3.若结果数组中没有该元素,则存到结果数组中 复制代码 代码如下: Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i < this.length; i++){ var repeat = false; for(var j = 0; j < res.lengt
-
关于js数组去重的问题小结
1.根据js对象中key不重复的原则,构思出数组去重的方法,按照最常规的思维如下: 复制代码 代码如下: function distinctArray(arr){var obj={},temp=[];for(var i=0;i<arr.length;i++){if(!obj[arr[i]]){temp.push(arr[i]);obj[arr[i]] =true;}}return temp; } var testarr=[1,2,3,2]; console.log(distinctA
-
js数组去重的5种算法实现
1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法"indexOf"是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: // 最简单数组去重法 function unique1(array){ var n = []; //一个新的临时数组 //遍历当前数组 for(var i = 0; i < array.length; i++){ //如果当前数组的第i已
-
JS数组去重与取重的示例代码
方法一:去重复数据 复制代码 代码如下: <script>Array.prototype.distinct=function(){var a=[],b=[];for(var prop in this){ var d = this[prop]; if (d===a[prop]) continue; //防止循环到prototype if (b[d]!=1){ a.push(d); b[d]=1; }}return a;}var x=['a','b','c','d','
-
高性能js数组去重(12种方法,史上最全)
数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码.如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看. 在真实的项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重.虽然日常项目用到的概率比较低,但还是需要了解一下,以防面试的时候可能回被问到. 注:写的匆忙,加上这几天有点忙,还没有非常认真核对过,不过思路是没有问题,可能一些小细节出错而已. 数组去重的方法 一.利用ES6 Set去重(ES6中最常用) function u
-
js数组去重常见的方法汇总(7种)
目录 1.借助ES6提供的Set结构 new Set() 简单好用 强烈推荐 2.利用 filter() 去重 3.利用for 循环 搭配 indexOf 去重 4.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 比较繁琐 不推荐 5.借助新数组 通过 indexOf 方法判断当前元素在数组中的索引,如果与循环的下标相等则添加到新数组中 6.利用双重for循环 7.利用includes实现数组去重 总结 1.借助ES6提供的Set结构 new Set() 简单好用 强烈推荐 直接给一
-
javascript数组去重3种方法的性能测试与比较
昨天参加的一个前端面试,其中有一题数组去重,首先想到的是对象存键值的方法,代码如下 方法一:(简单存键值) 复制代码 代码如下: Array.prototype.distinct1 = function() { var i=0,tmp={},that=this.slice(0) this.length=0; for(;i<that.length;i++){ if(!(that[i] in tmp)){ this[this.length]=that[i]; tmp[that[i]]=true; }
-
JS数组去重常用方法实例小结【4种方法】
本文实例讲述了JS数组去重常用方法.分享给大家供大家参考,具体如下: js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, j = this.length; i < j; i++) { if (this[i] === it
-
JS数组去重的6种方法完整实例
本文实例讲述了JS数组去重的6种方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>www.jb51.net 数组去重</title> </head> <body> <script> //1.filter:(indexOf)方法创建一个新的数组,新数组中的元素是通过检查指定
-
js数组去重的N种方法(小结)
对于数组去重我们有n种方法可以实现. es5实现方法 for循环+indexOf function unique(arr) { var uniqueArr = [], len = arr.length for (var i = 0; i < len; i++) { if (uniqueArr.indexOf(arr[i]) == -1) { uniqueArr.push(arr[i]) } } return uniqueArr } var arr = [1, 2, 3, 1, 5, "1&
-
js数组去重的11种方法
在实际工作或面试中,我们经常会遇到"数组去重"问题,接下来就是使用js实现的数组去重的多种方法: 1.将数组的每一个元素依次与其他元素做比较,发现重复元素,删除 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5]; console.log(arr); //[1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5, 5, 5, 5] function noRepeat1(arr) { for(var i = 0;
-
JS数组去重的九种高阶方法(亲测有效)
前言 一般的方法此处也不列举了,还是有很多的,如双层循环判断是否相等,或新建数组比较再push等等,需要注意的是,使用splice方法移除元素时,有可能会导致数组塌陷问题,需要处理一下 本文中介绍了多种数组去重的方法,使用了较多的高阶方法及API,并给出相应解释及语法,还有其他多种组合调用方式,原理逻辑其实都差不多,其中for循环可以与forEach方法相互转换,因此此处便不再一一列举,大家如果有更好的算法,可以留言给我,虚心请教!! 给定一个数组 [1,2,2,4,null,null,'3',
-
非常全面的12种js数组去重的方法
目录 前言 方法1.双重for循环 方法2.for循环 +findIndex 方法3.sort 排序 方法4.Set 方法5.set + Array.from 方法6.filter + indexOf 方法7.includes 方法 8. for + object 方法9.for + splice 方法10.filter + indexOf 方法11.Map 方法12:reduce 总结 前言 数组去重,可以说是一个比较常见的面试题,今天来盘点一下都有哪些方法可以实现数组去重. 方法1.双重fo
随机推荐
- IOS Bundle详细介绍及使用方法
- iOS9新特性之UIStackView
- Python中类的定义、继承及使用对象实例详解
- 在JavaScript的正则表达式中使用exec()方法
- Parse正式发布开源PHP SDK
- php class中public,private,protected的区别以及实例分析
- 通过对服务器端特性的配置加强php的安全
- Adodb的十个实例(清晰版)
- php flv视频时间获取函数
- Android实现微信支付功能
- mysql如何将多行数据合并成一行
- nodejs对express中next函数的一些理解
- jQuery实现的手机发送验证码倒计时效果代码分享
- SSH框架网上商城项目第9战之添加和更新商品类别功能实现
- 解析Javascript中中括号“[]”的多义性
- 基于Linux系统调用--getrlimit()与setrlimit()函数的方法
- jQuery新窗口打开外链接
- jQuery根据元素值删除数组元素的方法
- jQuery添加删除DOM元素方法详解
- javascript实现仿IE顶部的可关闭警告条