我想在vuejs的filter()函数中使用条件运算符,但是在|| if
之后出现错误
这是我的代码:
return this.produits.filter((item) => {
return (
item.codeproduct == this.codebar ||
if (item.produitbrand) {
for (let i = 0; i < item.produitbrand.length; i++) {
if (item.produitbrand[i].brandsubproduit) {
for (let e = 0; e < item.produitbrand[i].brandsubproduit[e].length; e++) {
item.produitbrand[i].brandsubproduit[e].codeproduct == this.codebar
}
}
}
});
})
任何方向?谢谢。
更新:这是我的错误:
答案 0 :(得分:2)
if
和for
语句。 return (
开始一个表达式。
如果我正确理解了您要做什么,这就是您应该编写的方式:
return this.produits.filter((item) => {
if (item.codeproduct == this.codebar) {
return true;
}
if (item.produitbrand) {
for (let i = 0; i < item.produitbrand.length; i++) {
if (item.produitbrand[i].brandsubproduit) {
for (let e = 0; e < item.produitbrand[i].brandsubproduit.length; e++) {
if (item.produitbrand[i].brandsubproduit[e].codeproduct == this.codebar) {
return true;
}
}
}
}
}
return false;
});
这真的是风格问题,但这是 I 的写法:
return this.produits.filter(item => {
if (item.codeproduct == this.codebar) return true;
for (let { brandsubproduit } of item.produitbrand || [])
for (let { codeproduct } of brandsubproduit || [])
if (codeproduct == this.codebar) return true;
return false;
});