前幾天在群組剛好看到有人發問:
有一組陣列:[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]
若有其他簡易的做法,歡迎在下方留言一起討論成長