The*_*eal 1 javascript ecmascript-6
我有以下方法:
getDeviceErrors(error) {
this.devices = this.data.segment.data.devices.filter((device) => {
device[this.data.label].error.forEach((errorObj) => {
if (errorObj.id === error.id) {
console.log(true);
return true;
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
虽然true输出到控制台,this.devices仍然是空的.
知道为什么吗?
你的filter功能实际上没有返回任何东西.要解决此问题,您可以Array.prototype.some按如下方式使用:
getDeviceErrors(error) {
this.devices = this.data.segment.data.devices.filter((device) => {
return device[this.data.label].error.some((errorObj) => {
return errorObj.id === error.id;
});
});
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下:我希望调用一个函数getDeviceErrors来返回一些东西而不仅仅是改变状态.