无重复项的javascript新数组
嗯。。我已经尝试了一些事情,但无法让这个工作。。。我知道这应该比我现在做的要简单 我想创建一个没有重复项的数组。你能帮我吗无重复项的javascript新数组,javascript,reactjs,use-effect,use-state,Javascript,Reactjs,Use Effect,Use State,嗯。。我已经尝试了一些事情,但无法让这个工作。。。我知道这应该比我现在做的要简单 我想创建一个没有重复项的数组。你能帮我吗 useEffect(() => { allBands.forEach(band => { if(!availableGenres.includes(band.bandGenre)){ setAvailableGenres(genres => [...genres, band.bandGenre])
useEffect(() => {
allBands.forEach(band => {
if(!availableGenres.includes(band.bandGenre)){
setAvailableGenres(genres => [...genres, band.bandGenre])
}
})
}, [allBands])
我可能建议使用内置的
Set
对象来跟踪独特的类型。一旦你的集合
拥有了所有的类型,你就可以使用扩展操作符(…
)将其转换回数组并设置可用的类型
useffect(()=>{
常量类型=新集合();
allBands.forEach(band=>{
风格。添加(乐队。乐队风格);
})
setAvailableGenres([…流派]);
},[所有频带])
我可能建议使用内置的Set
对象来跟踪独特的类型。一旦你的集合
拥有了所有的类型,你就可以使用扩展操作符(…
)将其转换回数组并设置可用的类型
useffect(()=>{
常量类型=新集合();
allBands.forEach(band=>{
风格。添加(乐队。乐队风格);
})
setAvailableGenres([…流派]);
},[所有频带])
如果我没有误解您的数据结构,您可以试试这个
useEffect(() => {
setAvailableGenres(genres => [
...genres,
...allBands.map(band => band.bandGenre).filter(bandGenre => !genres.includes(bandGenre))
])}, [allBands])
如果我没有误解您的数据结构,您可以试试这个
useEffect(() => {
setAvailableGenres(genres => [
...genres,
...allBands.map(band => band.bandGenre).filter(bandGenre => !genres.includes(bandGenre))
])}, [allBands])
请提供
所有波段
、流派
和可用频道
好吗?我们不知道您使用的是什么结构。下面的答案有效——但我很好奇您是否有其他想法。allBands是一个对象数组,每个对象都有一个BandGene。我使用forEach()方法从allBands数组中的每个对象提取流派availableGenres和setAvailableGenres是react中useState的一部分,我在其中存储提取的流派。”“流派”是状态的更新程序。谢谢你的回复!请提供所有波段
、流派
和可用频道
好吗?我们不知道您使用的是什么结构。下面的答案有效——但我很好奇您是否有其他想法。allBands是一个对象数组,每个对象都有一个BandGene。我使用forEach()方法从allBands数组中的每个对象提取流派availableGenres和setAvailableGenres是react中useState的一部分,我在其中存储提取的流派。”“流派”是状态的更新程序。谢谢你的回复!哇!我从没听说过这个。它起作用了我现在正在读关于它的文章——我看到它会自动检查以确保每个值都是唯一的?使用new Set()有什么缺点吗?非常感谢你给我看这个。一个缺点是Set
s是无序的。哇!我从没听说过这个。它起作用了我现在正在读关于它的文章——我看到它会自动检查以确保每个值都是唯一的?使用new Set()有什么缺点吗?非常感谢您给我看这个。一个缺点是Set
s是无序的。