javascript之数组去重
栏目: JavaScript · 发布时间: 5年前
内容简介:平时工作当中经常会遇到数组去重的需求,所以在这里整理一下有哪些方法可以实现数组的去重。
平时工作当中经常会遇到数组去重的需求,所以在这里整理一下有哪些方法可以实现数组的去重。
1、双层for循环
function removeSameEle(arr){ let res=[]; for(var i=0,len=arr.length;i<len;i++){ for(var j=0,resLen=res.length;j<resLen;j++){ if(arr[i]===arr[j]){//判断结果中是否已存在该数据了 break; } } //判断是否执行到了res的末尾 if(j===resLen){ arr.push(arr[i]); } } return res; } 复制代码
2、indexof或者includes
function removeSameEle(arr){ let res=[]; for(var i=0,len=arr.length;i<len;i++){ //if(!res.includes(arr[i])){ if(res.indexof(arr[i])<0){//判断结果中是否存在该数据了 res.push(arr[i]) } } return res; } 复制代码
3、filter
function removeSameEle(arr){ let res=arr.filter((item,index,arr)=>{ return arr.indexOf(item)===index; }); return res; } 复制代码
4、set唯一值去重
此方法只能用于对简单数组进行去重。function removeSameEle(arr){ let res=new Set(arr); return [...res]; } 复制代码
5、sort排序后去重
function removeSameEle(arr){ let res=[]; let sortedArr=arr.sort(); for(let i=0,len<sortedArr.length;i<len-1;i++){ if(i==0||sortedArr[i]!==sortedArr[i+1]){ res.push(sortedArr[i]); if(i===(len-2)){ res.push(sortedArr[i+1]); } } } return res; } 复制代码
6、使用object.keys()去重
function removeSameEle(arr){ let res=[]; let obj={}; arr.forEach((item,index)=>{ if(!obj[item]){ obj[item]=item } }); for(let value of Object.values(obj)){ res.push(value); } return res; }复制代码
以上所述就是小编给大家介绍的《javascript之数组去重》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- C语言指针数组和数组指针
- 数组 – 如何在Swift中将数组拆分成两半?
- 菜鸡的算法修炼:数组(旋转数组的最小数字)
- 交换数组元素,使得数组的和的差最小
- JS数组专题1️⃣ ➖ 数组扁平化
- 算法-计算小数组在大数组中的索引
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ruby语言入门
Yugui / 丁明、吕嘉 / 东南大学出版社 / 2010 年4月 / 32.00元
《Ruby 语言入门(中文版)》为具有一定其他语言的编程经验的读者介绍Ruby的特征、Ruby中的编程方法和编程习惯。这些内容都是为了让读者能够边阅读Ruby的资料边进行实践性的学习所必须具备的基础知识。《Ruby 语言入门(中文版)》对Ruby的基础部分和元类、块语句这样独特的概念,以及由此产生的特有的文化进行了说明,以使读者能够了解到Ruby独特的思考方式。读完《Ruby 语言入门(中文版)》......一起来看看 《Ruby语言入门》 这本书的介绍吧!