javascript 没有重复的新数组

javascript new array without duplicates

嗯..我已经尝试了一些东西但无法让它工作......我知道它应该比我做的更简单。

我想创建一个没有重复的数组。你能帮帮我吗?

useEffect(() => {
    allBands.forEach(band => {
        if(!availableGenres.includes(band.bandGenre)){
            setAvailableGenres(genres => [...genres, band.bandGenre])  
        }
    })
}, [allBands])

我可能会建议使用内置 Set 对象来跟踪独特的流派。一旦您的 Set 拥有所有流派,您可以使用展开运算符 (...) 将其转换回数组并设置可用流派。

useEffect(() => {
  const genres = new Set();
  allBands.forEach(band => {
    genres.add(band.bandGenre);
  })
  setAvailableGenres([...genres]);
}, [allBands])

如果我没有误解你的数据结构,你可以试试这个。

useEffect(() => {
  setAvailableGenres(genres => [
    ...genres, 
    ...allBands.map(band => band.bandGenre).filter(bandGenre => !genres.includes(bandGenre))
])}, [allBands])