I have an array with multiples of certain automobiles, included within it. I am trying to return an array with one of every item, without duplicates.
I have a functioning piece of code, using an if...else
format, but cannot achieve the same result with a conditional statement, in JavaScript. It says that list.includes(automobile)
is not a function.
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
let noDuplicates = data.reduce((list, automobile) => {
if (list.includes(automobile)) {
return list
} else {
return [...list, automobile]
}
}, []);
console.log(noDuplicates)
This version with if...else
, works, but where I'm struggling to achieve the same result is with a conditional statement, like the following:
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
let noDuplicates = data.reduce((list, automobile) => {
list.includes[automobile] ? list : [...list, automobile]
}, []);
console.log(noDuplicates)
I assume I may have some parenthesis missing, or in the wrong place, but it appears correct to me. The if...else
statement returned exactly what I was looking for, ["car", "truck", "bike", "walk", "van"]
, but the conditional statement was not.