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')
,但我没有按要求命名属性,也没有指定相关对象中属性的深度。