繁体   English   中英

no-return-assign / no-unused-expressions

[英]no-return-assign / no-unused-expressions

我有以下代码行在我的代码上工作,但 eslint 让我返回一个错误。

this.data.forEach(el => el.value === newValue? el[column] = newValue[column]: el)

这给了我以下错误: no-return-assign: Arrow function should not return assignment.

这个问题中,它指出我将通过简单地将 => 之后的所有内容括在花括号中来解决问题,如下所示:

this.data.forEach(el => { el.value === newValue? el[column] = newValue[column]: el })

但是,这现在导致以下错误: no-unused-expression: Expected an assignment or function call and instead saw an expression.

关于如何解决这个问题的任何线索?

您收到此类警告的原因是因为将命令式代码放在表达式中会令人困惑。 您的代码相当于这样的代码,更具可读性:

this.data.forEach(el => {
    if (el.value === newValue) {
        el[column] = newValue[column];
        return newValue[column];
    else {
        return el;
    }
});

值得注意的是,forEach 中回调的返回值被忽略了,因此您的代码实际上可能与您的预期有所不同。 如果赋值语句是你想要的,你可以这样做:

this.data
    .filter(el => el.value === newValue)
    .forEach(el => {
        el[column] = newValue[column];
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM