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

前几天在群组刚好看到有人发问:
有一组阵列:[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]

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


<<:  NIST风险管理框架(RMF)-系统分类

>>:  【左京淳的JAVA WEB学习笔记】第十三章 购物车

14 实作出牌倒数 诶这是什麽放置游戏

实作出牌倒数计时 ok, 我们有两个地方需要开始计时 第一个是游戏开始的时候, 第二个是 turn ...

[Day 9] Leetcode 917. Reverse Only Letters (C++)

前言 今天的daily challenge题目是917. Reverse Only Letters,...

DAY16支持向量机演算法(续五)

昨天介绍完SMO并算出a,b,今天就要来算出w和标记在图上, 依照w的公式,我们可以得到下面程序: ...

D-8. Rails 用Postman测试自己的WEB API && Valid Parentheses

请先安装Postman 今天完成整个CRUD,简单介绍操作Postman。 接续昨天文章 9.修改r...

(Day 19) 原型与建构式

函式建构式建立原型 前面几篇有提到,可以使用函示建构式、或是 ES 6 来建立原型,今天就来介绍使用...