首页 > 解决方案 > 在添加到 javascript 数组之前检查重复项

问题描述

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

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

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

标签: javascriptreactjs

解决方案


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

你应该使用这样的东西!this.state.animals.find(ani => ani === animal )

另外,请记住,===甚至仅在将两个引用与同一事物进行比较==时才用于对象。true


推荐阅读