如何检查项目是否已经存在于 vue.js 的数组中?

新手上路,请多包涵

我有这个数组,我在点击时添加值,但我想检查值是否已经在数组中,如果它什么都不做。我尝试使用 indexOf 但每次都得到相同的结果

this.fields.push(this.field);
      this.field = { value: '' };

原文由 None 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 373
2 个回答

您是否通过 value 属性确定它是否在数组中?如果是这样,您可以使用 Array.some()

 var exists = this.fields.some(function(field) {
  return field.value === this.field.value
});

if (!exists) {
  this.fields.push(this.field);
}

原文由 Bill Criswell 发布,翻译遵循 CC BY-SA 3.0 许可协议

在对象数组中,最好使用 Array.some()

 this.users = [{id : 1, name : 'Jonh Doe'},{id : 2, name : 'Mary Jean'}]

if(!this.users.some(data => data.id === 1)){
    //don't exists
}else{
    //exists because Jonh Doe has id 1
}

资料来源: https ://www.samanthaming.com/

原文由 Vladimir Salguero 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题