Javascript 如何使用';包括';在vue中正确使用

Javascript 如何使用';包括';在vue中正确使用,javascript,arrays,vue.js,vuejs2,Javascript,Arrays,Vue.js,Vuejs2,如果数组中的对象具有字符串FAILED,我想显示一条错误消息。我的数组如下所示: hasFailedTask() { console.log(this.model.status.tasks); return this.model.status.tasks.state.includes('FAILED'); }, hasFailedTask() { //console.log(this.model.status.tasks); return this.model.status.t

如果数组中的对象具有字符串
FAILED
,我想显示一条错误消息。我的数组如下所示:

hasFailedTask() {
  console.log(this.model.status.tasks);
  return this.model.status.tasks.state.includes('FAILED');
},
hasFailedTask() {
  //console.log(this.model.status.tasks);
  return this.model.status.tasks.some(({state}) => state === "FAILED")
},

检查一个对象是否有
状态:“FAILED”
的代码如下:

hasFailedTask() {
  console.log(this.model.status.tasks);
  return this.model.status.tasks.state.includes('FAILED');
},
hasFailedTask() {
  //console.log(this.model.status.tasks);
  return this.model.status.tasks.some(({state}) => state === "FAILED")
},
但我总是在控制台中收到以下错误消息:

vue.runtime.esm.js:587 [Vue warn]: Error in render: "TypeError: Cannot read property 'includes' of undefined"
有谁知道这个问题并能支持我吗


提前谢谢你

您可以使用
find
方法,因为
此.model.status.tasks
是一个数组:

hasFailedTask() {
 
  return  this.model.status.tasks.find(task=>task.state.includes('FAILED'));
},

您的函数应该如下所示:

hasFailedTask() {
  console.log(this.model.status.tasks);
  return this.model.status.tasks.state.includes('FAILED');
},
hasFailedTask() {
  //console.log(this.model.status.tasks);
  return this.model.status.tasks.some(({state}) => state === "FAILED")
},

您还可以使用flatMap允许包含检查:

hasfiledtask(){
返回此.model.status.tasks.flatMap(t=>t.state).includes('FAILED');
}

tasks
是一个数组,它包含对象
,其中一些对象具有值为
'FAILED'
.state
属性。没有
tasks。state
属性。谢谢@Bergi,它在我的代码中会是什么样子?就像@ASDFgerte刚才的注释对不起,我出于各种原因删除了我的注释。为了完成,它是
!arr.some(obj=>obj.prop=='FAILED')
,但我没有按要求命名属性,也没有指定相关对象中属性的深度。