js数组中去除重复值的几种方法
在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来
去除数组重复值方法:
1,利用indexOf()方法去除
思路:创建一个新数组,然后循环要去重的数组,然后用新数组去找要去重数组的值,如果找不到则使用.push添加到新数组,最后把新数组返回回去就行了
看不懂没关系,上代码就比较容易懂了
function fun(arr){ let newsArr = []; for (let i = 0; i < arr.length; i++) { if(newsArr.indexOf(arr[i]) === -1){ newsArr.push(arr[i]); } } return newsArr; }
2,利用splice方法去除
思路:这个方法有点模仿冒泡 俩层循环,外层循环遍历数组,内层循环比较值,如果有相同, 则使用splice去除 然后返回处理完的数组即可
看不懂没关系,上代码就比较容易懂了
function fun(arr){ for (let i = 0; i < arr.length; i++) { for(let j = i+1; j < arr.length; j++){ if(arr[i]==arr[j]){ arr.splice(j,1); j--; } } } return arr; }
3,利用es6新增的集合Set去除
这里简单介绍一下Set 集合,他跟数组很相识,但不是数组,是集合。他里面也有跟多方法,如增(add),删(delete),查(has)等等。
他最重要的特点是:元素不能重复,即在Set集合不会出现相同的元素
Set去重方案1:
思路:因为Set集合里面不允许出现重复值,那我们就可以利用这个特点将我们的数组传进去去重
首先new一个Set集合将要去重的数组作为参数传进去,然后创建一个新数组,循环遍历一下集合,将每个集合元素添加到新数组,最后将新数组返回即可
function fun(arr){ let s1 = new Set(arr); let arr2 = []; for(let item of s1){ arr2.push(item); } return arr2; }
Set去重方案2(使用数组方法Array.form()):
思路:Array.from(); 能够把伪数组,集合转成数组类型,这个方法配合上Set集合就刚好符合我们的需求
function fun(arr){ let s1 = new Set(arr); return Array.from(s1); }
Set去重方案3(使用es6展开运算符...):
思路:es6展开运算符能够将一个数组转为用逗号分隔的参数序列
function fun(arr){ let s1 = new Set(arr); return [...s1]; }
以上就是js数组中去除重复值的几种方法的详细内容,更多关于js数组去除重复值的资料请关注我们其它相关文章!
相关推荐
-
JS去除数组重复值的五种不同方法
今天工作遇到此问题,尝试多个方法不尽人意,故此写个博客来总结一下如何在js中去除重复元素. Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: 方法1: Array.prototype.method1 = function(){ var arr[]; //定义一个临时数组 for(var i = 0; i < this.length; i++){ //循环遍历当前数组 //判断当前数组下标为i的元素是否已经保存到临时数组 //如果已保存,则跳过,否则将此元素保存到
-
JavaScript去除数组里重复值的方法
本文实例讲述了JavaScript去除数组里重复值的方法.分享给大家供大家参考.具体如下: var unique = function(origArr) { var newArr = [], origLen = origArr.length, found, x, y; for ( x = 0; x < origLen; x++ ) { found = undefined; for ( y = 0; y < newArr.length; y++ ) { if ( origArr[x] === n
-
AngularJS ng-repeat数组有重复值的解决方法
前言 大家都知道默认在ng-repeat的时候每一个item都要保证是唯一的,否则console就会打出error告诉你哪个key/value是重复的. 如: $scope.items = [ 'red', 'blue', 'yellow', 'white', 'blue' ]; 这个数组blue就重复了,html这么遍历它 <li ng-repeat="item in items">{{ item }}</li> 控制台就会抛出一个错误: 点击错误链接到Ang
-
JS判断数组中是否有重复值得三种实用方法
方法一: 复制代码 代码如下: var ary = new Array("111","22","33","111"); var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace(ary[i]+",","").indexOf(ary[i]+",&qu
-
Javascript计算二维数组重复值示例代码
前言 最近工作中遇到了一个问题,需求是利用Javascript计算二维数组重复值,如下面有个二维数组 [[\'error\',3],[\'error\',5],[\'error\',6],[\'true\',3],[\'true\',1]] 需要统计计算重复项 \'error\' 和 \'true\', 统计计算之后的结果: [[\'error\',14],[\'true\',4]] 实现代码: var arr = [[\'error\',3],[\'error\',5],[\'error\',
-
JS实现数组去重复值的方法示例
本文实例讲述了JS实现数组去重复值的方法.分享给大家供大家参考,具体如下: 运行效果图如下: 完整实例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&
-
详解JavaScript数组和字符串中去除重复值的方法
原理在代码中表现得非常清晰,我们直接来看代码例子: var ages = array.map(function(obj) { return obj.age; }); ages = ages.filter(function(v,i) { return ages.indexOf(v) == i; }); console.log(ages); //=> [17, 35] function isBigEnough(element) { return element >= 10; } var filte
-
js数组中去除重复值的几种方法
在日常开发中,我们可能会遇到将一个数组中里面的重复值去除,那么,我就将我自己所学习到的几种方法分享出来 去除数组重复值方法: 1,利用indexOf()方法去除 思路:创建一个新数组,然后循环要去重的数组,然后用新数组去找要去重数组的值,如果找不到则使用.push添加到新数组,最后把新数组返回回去就行了 看不懂没关系,上代码就比较容易懂了 function fun(arr){ let newsArr = []; for (let i = 0; i < arr.length; i++) { if(
-
js数组中删除重复值的代码小结
js数组中去除重复值 Array.prototype.del = function() { var a = {}, c = [], l = this.length; for (var i = 0; i [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 方法二 复制代码 代码如下: //去重复数组 function unique(data){ data = data || []; var a = {}; len = data.length; for (var i=0; i<len;i++
-
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. Array.prototype.in_array=function(e){ var r=new RegExp(','+e+','); return (r.test(','+this.join(this.S)+','));}; 用法如下: var arr=new Array(['b',2,'a',4]); arr.in_array('b');//判断'b'字符是否存在于 arr 数
-
JavaScript中去掉数组中的重复值的实现方法
复制代码 代码如下: 题目:要求写一个函数,去掉给定数组中的重复值. 如: 传入数组 a = [0, 8, 5, 4, 78, 8, 90, 4, 'a', 'b', 'a']; 要求返回:[0,4,5,8,78,90,a,b] 对于这个题目,在面试之后也想了好多次,不过一直没能想出一个时间复杂度较低的方法.昨天下午在宿舍看<JavaScript语言精粹>看到一个书中的一段代码有所触发,于是在jsfiddle上测试了,成功.代码如下(完整版参见jsfiddle) 复制代码 代码如下: var
-
如何高效率去掉js数组中的重复项
方式一: 常规模式 1.构建一个新的临时数组存放结果 2.for循环中每次从原数组中取出一个元素,用这个元素循环与临时数组对比 3.若临时数组中没有该元素,则存到临时数组中 方式二: 使用了默认Js数组sort默认排序,是按ASCII进行排序: 若要按照升降序的排列如下:<控制台打印输出> 1.先将当前数组进行排序 2.检查当前中的第i个元素 与 临时数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置 3.如果不相同,则将该元素存入结果数组中 方式三: <推荐>利
-
php删除二维数组中的重复值方法
实例如下所示: //二维数组去掉重复值 public function a_array_unique($array){ $out = array(); foreach ($array as $key=>$value) { if (!in_array($value, $out)){ $out[$key] = $value; } } $out = array_values($out); return $out; } 以上这篇php删除二维数组中的重复值方法就是小编分享给大家的全部内容了,希望能给大家
-
C++实现LeetCode(26.有序数组中去除重复项)
[LeetCode] 26. Remove Duplicates from Sorted Array 有序数组中去除重复项 Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this
-
C++实现LeetCode(80.有序数组中去除重复项之二)
[LeetCode] 80. Remove Duplicates from Sorted Array II 有序数组中去除重复项之二 Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twice and return the new length. Do not allocate extra space for another array, you mus
-
js获取标签元素data-*属性值的4种方法
目录 方式一:dataset 方式二: getAttribute/setAttribute/removeAttribute 方法三:jQuery.attr 方法四:jQuery.data 前言: 标签上有两个属性data-id 和 data-user-name, 需要通过js去获取 <style> #user::before { content: attr(data-id); } #user::after { content: attr(data-user-name); }
随机推荐
- Angular+Node生成随机数的方法
- ghost安装系统软件硬盘安装器 安装ghost图文教程
- js判断出两个字符串最大子串的函数实现方法
- ajax来自动补全表单字段示例
- Android实现自定义日历
- Mongo DB增删改查命令
- mysql存储过程事务管理简析
- jquery中filter方法用法实例分析
- JavaScript数据结构之优先队列与循环队列实例详解
- 小试JavaScript多线程第1/2页
- Jquery下:nth-child(an+b)的使用注意
- Android提高之BLE开发Android手机搜索iBeacon基站
- JAVA 根据设置的概率生成随机数的方法
- 理解Spring中的依赖注入和控制反转
- 基于从request获取各种路径的方法介绍
- vue实现在表格里,取每行的id的方法
- vue两个组件间值的传递或修改方式
- 一次Webpack配置文件的分离实战记录
- 如何使用JavaScript实现栈与队列
- vue递归组件实战之简单树形控件实例代码