前几天在群组刚好看到有人发问:
有一组阵列:[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]
若有其他简易的做法,欢迎在下方留言一起讨论成长