javascript - 在添加到 javascript 数组之前检查重复项
问题描述
我有一个 React 函数,我想在其中将一个对象添加到一个 javascript 数组中。到目前为止我有这个
selectAnimalHandler = (animal) =>{
console.log(animal.id)
if(this.state.animals.find(ani => ani !== animal )){
this.setState(prevState =>(
{selectedAnimals: [...prevState.selectedAnimals, animal]}))
}
}
逻辑是检查数组中是否已经存在元素,如果不存在则将其添加到数组中。我尝试创建一个条件,而不是该元素是否存在于数组中。如果它不存在,则什么也不会发生
解决方案
this.state.animals.find(ani => ani !== animal )
即使animal
在数组中,此语句也会返回一个值。
你应该使用这样的东西!this.state.animals.find(ani => ani === animal )
另外,请记住,===
甚至仅在将两个引用与同一事物进行比较==
时才用于对象。true
推荐阅读
- python - Seaborn Pairplot with Dataframe vs CSV
- mysql - 我可以在 Sequelize.js 中的单个查询中获取 ID 为 1 的类别和该类别的所有子类别吗?
- flutter - 无法在测试中打开/读取本地文件。引发 FileSystemException:无法打开文件、路径
- java - 使用 Spring ResponseEntity 转发
- java - 日历 API 调用开始产生“SSL 对等体关闭”
- swift - Swift:无法在 WKWebView 中加载本地图像
- amazon-web-services - 无服务器应用程序规范文档无效。发现的错误数:2. ID 为 [**] 的资源无效。属性“角色”的类型无效
- vue.js - Vue:在组件中查看 v-model 的“值”
- python - 如何优化 PyTorch 中循环损失函数的内存使用?
- java - Android资源链接失败错误:写入数据无效。(13)