数组去重的几种方法
栏目: JavaScript · 发布时间: 5年前
内容简介:数组去重在日常开发中作中或者是面试中是经常出现的一个问题,结合es6可以有很多种方法实现
数组去重在日常开发中作中或者是面试中是经常出现的一个问题,结合es6可以有很多种方法实现
1 思路:将数组第一项放到一个新数组中,然后将原数组的每一项与新数组做对比,若无相同值,则将此数据放到新数组中,最后返回新数组
function unique1(arr){ let newArr=[arr[0]] for (let i=1;i<arr.length;i++) { let isRepeat=false; for (let j=0;j<newArr.length;j++) { if (newArr[j]==arr[i]) { isRepeat=true; break; } } if (!isRepeat) { newArr.push(arr[i]) } } return newArr }
2 思路:将原数组排序,然后与新数组的相邻项比较
function unique2(arr){ let arrSort=arr.sort() let newArr=[arrSort[0]] for (let i=1;i<arrSort.length;i++) { if (newArr[newArr.length-1]!==arrSort[i]) { newArr.push(arrSort[i]) } } return newArr }
3 思路:利用数组的indexof(),在新数组里面遍历目标数组的每一项,若没有则将此项添加到新数组中
function unique3(arr){ let newArr=[] for (let i=0;i<arr.length;i++) { if (newArr.indexOf(arr[i])===-1) { newArr.push(arr[i]) } } return newArr }
4 思路:利用数组方法includes(),判断新数组是否包含,若没有则添加到新数组中
function unique4(arr){ let newArr=[] for (let i=0;i<arr.length;i++) { if (!newArr.includes(arr[i])) { newArr.push(arr[i]) } } return newArr }
5 思路:利用数组的filter()和includes()
function unique5(arr){ let newArr=[] return newArr=arr.filter((item)=>{ return newArr.includes(item)?'':newArr.push(item) }) }
6 思路:用数组的forEach()和includes()
function unique6(arr){ let newArr=[] arr.forEach((item)=>{ newArr.includes(item)?'':newArr.push(item) }) return newArr }
7 思路:利用数组的lastIndexOf()方法
function unique7(arr){ let newArr=[] for (let i=0;i<arr.length;i++) { if (newArr.lastIndexOf(arr[i])===-1) { newArr.push(arr[i]) } } return newArr }
8 思路:利用数组的from和set方法
function unique8(arr){ return Array.from(new Set(arr)) }
欢迎转载,转载需带着文章出处链接~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
文明之光(第一册)
吴军 / 人民邮电出版社 / 2014-6-25 / 59.00元
人类的历史,是从野蛮蒙昧一步步走向文明进步的过程。在文明的进程中,人类创造出多元的文化,它们有着各自的特长。要实现人类和平发展的终极理想,一个重要的前提是承认文化的多元性,并且取长补短,相互融合。 吴军博士写作《文明之光》系列,希望能开阔人们的视野,让我们看到各种各样的人类文明。虽然今天不同的地区发达程度不同,文明历史的长短不一,国家亦有大小之分,但是文明之光从世界的每一个角落发出,对人类的......一起来看看 《文明之光(第一册)》 这本书的介绍吧!