在添加到javascript数组之前检查重复项

时间:2019-01-08 21:40:43

标签: javascript reactjs

我有一个React函数,我想在其中向JavaScript数组添加对象。到目前为止,我有这个

 selectAnimalHandler = (animal) =>{
    console.log(animal.id)
    if(this.state.animals.find(ani => ani !== animal )){
    this.setState(prevState =>(
        {selectedAnimals: [...prevState.selectedAnimals, animal]}))
    }
}

逻辑是检查某个元素是否已存在于数组中,如果不存在,则将其添加到数组中。 我尝试创建一个条件,而不是元素是否存在于数组中。 如果它不存在,什么也不会发生

1 个答案:

答案 0 :(得分:2)

即使this.state.animals.find(ani => ani !== animal )在数组中,此语句animal也会返回一个值。

您应该使用类似!this.state.animals.find(ani => ani === animal )

此外,请记住,如果将两个引用与同一事物进行比较,则===甚至是对象上使用的==仅为true