我有一个数组,其中包含某些特定汽车的倍数。我正在尝试返回一个数组,其中每个项目都包含一个,没有重复项。
我使用if...else
格式编写了一段有效的代码,但是在JavaScript中使用条件语句无法达到相同的结果。它说list.includes(automobile)
不是函数。
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)
此版本带有if...else
的版本可以使用,但是我要获得相同结果的努力是使用条件语句,如下所示:
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)
我认为我可能缺少一些括号,或者在错误的位置,但这对我来说似乎是正确的。 if...else
语句返回的正是我要查找的内容,["car", "truck", "bike", "walk", "van"]
,但条件语句却没有。
答案 0 :(得分:4)
为什么我的代码不起作用?
return
语句list.includes[automobile]
应该是list.includes(automobile)
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
let noDuplicates = data.reduce((list, automobile) => {
return list.includes(automobile) ? list : [...list, automobile]
}, []);
console.log(noDuplicates)
您可以简单地使用Set
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ];
let unique = [...new Set(data)]
console.log(unique)