如何取出阵列中重複/不重複的值

前几天在群组刚好看到有人发问:
有一组阵列:[1, 8, 2, 3, 4, 5, 4, 6, 2, 7]
该如何取出不重複值让阵列变成:[1, 8, 2, 3, 4, 5, 6, 7]
因为连假的关係,脑袋已自动关机许久~
仔细的思考一下解法,就在这时脑袋忽然灵光一闪
想到了两种有最有效又最方便的做法!!

第一种是ES6的语法糖,使用解构赋值的方式搭配new Set()

const arr = [1, 8, 2, 3, 4, 5, 4, 6, 2, 7]let newArr = [...new Set(arr)]console.log(newArr) //[1, 8, 2, 3, 4, 5, 6, 7]

第二种是採用filter搭配indexOf的方法

const arr = [1, 8, 2, 3, 4, 5, 4, 6, 2, 7]let newArr = arr.filter((item, index) => {  return arr.indexOf(item) === index})console.log(newArr) //[1, 8, 2, 3, 4, 5, 6, 7]

若是要取出有重複的值,则改变判断符号就行

const arr = [1, 8, 2, 3, 4, 5, 4, 6, 2, 7]let newArr = arr.filter((item, index) => {  return arr.indexOf(item) !== index})console.log(newArr) //[4, 2]

若有其他简易的做法,欢迎在下方留言一起讨论成长


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章