验证数组中的重复数据项-JavaScript
我的问题是,我想插入在推送时不重复的值 这是我的代码:验证数组中的重复数据项-JavaScript,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我的问题是,我想插入在推送时不重复的值 这是我的代码: addAddress: function() { this.insertAddresses.Adress = this.address_address this.insertAddresses.State = this.selectedStateAddress this.insertAddresses.City = this.selectedCityAddress
addAddress: function() {
this.insertAddresses.Adress = this.address_address
this.insertAddresses.State = this.selectedStateAddress
this.insertAddresses.City = this.selectedCityAddress
if(this.insertAddresses.Adress !== "" && this.insertAddresses.State !== null && this.insertAddresses.City !== null) {
let copia = Object.assign({}, this.insertAddresses);
this.addresses.push(copia)
}
else
{
this.$message.error('Not enough data to add');
return
}
},
向我的对象添加新元素时,它返回以下内容
当我再次按下add按钮时,它会再次添加相同的值,我希望执行验证,以使数据不相同。如何以正确的方式执行此验证
检查一下:
let filter= this.addresses.find(x=> this.insertAddresses.State==x.State)
if (filter==null) {
this.$message.error('your message');
}
或过滤所有
let filter= this.addresses.find(x=> this.insertAddresses.Adress==x.Adress && this.insertAddresses.State==x.State && this.insertAddresses.City==x.City)
if (filter==null) {
this.$message.error('your message');
}
``
插入之前,请验证该项在数组中不存在 您可以使用以下命令搜索阵列:
导出默认值{
方法:{
addAddress(){
常量newItem={
地址:this.Address\u地址,
状态:this.selectedStateAddress,
城市:此。已选择城市地址
}
此.insertItem(newItem)
},
插入项(项目){
const existingItem=this.addresses.find(a=>{
返回
a、 状态===项。状态
&&a.城市===项目。城市
&&a.地址===项目地址
})
如果(!existingItem){
此.addresses.push(项目)
}
}
}
}
另一方面,如果你的应用程序需要更好的性能(例如,有许多地址),你可以保存一个单独的命令来跟踪地址是否已经存在:
导出默认值{
数据(){
返回{
请参阅:{}
}
},
方法:{
插入项(项目){
常量{地址、州、市}=项
const key=JSON.stringify({Address,State,City})
const seen=this.seenadresses[key]
如果(!看到){
this.seenadresses[key]=项
此.addresses.push(项目)
}
}
}
}
我已经设法解决了这个问题:const existingItem=this.addresses.find(a=>a.State===item.State&&a.City==item.City&&a.address==item.address)非常感谢!!!