On gists
5 ways - unique values in array
JavaScript
ES 6
unique-values-in-array.js
Raw
#
const arr = [
'banan',
'apple',
'orange',
'lemon',
'apple',
'lemon',
]
// 1 no duplicities filter
function removeDuplicities(data) {
return data.filter((value, index) => data.indexOf(value) === index)
}
// 1 only duplicities filter
function onlyDuplicities(data) {
return data.filter((value, index) => data.indexOf(value) !== index)
}
// 2 set
[...new Set(arr)]
// 3 forEeach
let unique = []
arr.forEach(item => {
if (!unique.includes(item)) {
unique.push(item)
}
})
// 4 reduce #1
let unique = arr.reduce((acc, curr) => {
if (acc.indexOf(curr) < 0) {
acc.push(curr)
}
return acc
}, [])
// 4 reduce #2
let unique = arr.reduce((acc, curr) => {
return acc.includes(curr) ? acc : [...acc, curr]
}, [])
// 5 prototype #1
Array.prototype.unique = function() {
let unique = []
this.forEach((item) => {
if (!unique.includes(item)) {
unique.push(item)
}
})
return unique
}
// 5 prototype #2
Array.prototype.unique = function() {
return [...(new Set(this))] // or Array.from() instead of [...]
}