我有以下方法:
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;
}
});
});
}
虽然 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;
});
});
}
顺便说一句:我希望一个名为 getDeviceErrors
的函数返回一些东西,而不仅仅是改变状态。
关于javascript - forEach() 里面的 filter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46938541/