javascript - 如何为以下代码行修复 Es-lint "no-return-assign"

标签 javascript eslint arrow-functions

此代码运行正确(将对象数组转换为对象的对象)

ES-lint 然而给出了这个错误:

[eslint] Arrow function should not return assignment. (no-return-assign)

请问如何重写以满足 es-lint

var x = arr.reduce((obj, item) => (obj[item.userid] = item, obj), {})

最佳答案

就我个人而言,我喜欢代码更冗长一点,因为单行代码今天看起来非常聪明,但下周当我必须回来修复同一个地方的错误时,它需要一段时间才能理解我在做什么,更不用说是否是其他人必须修复它了。

我会这样写:

var x = arr.reduce((obj, item) => {
    obj[item.userid] = item;
    return obj;
}, {});

这里有一个带有一些虚拟数据的片段来测试它。

var arr = [
        {userid: 11},
        {userid: 12},
        {userid: 13},
        {userid: 14},
    ];

var x = arr.reduce((obj, item) => {
    obj[item.userid] = item;
    return obj;
}, {});

console.log(x);

关于javascript - 如何为以下代码行修复 Es-lint "no-return-assign",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51832397/

相关文章:

javascript - 是否可以在现有的纯 Javascript 项目中添加 Angular 组件?

javascript简单替换引号内的所有内容

javascript - 在 Canvas 内创建可滚动文本

javascript - 是否可以编写一个 Eslint 插件来检查所需文件是否存在?

javascript - eslint 错误一元运算符 '++' 使用 no-plusplus

javascript - 箭头函数执行上下文在哪里?

javascript - 将纯 Javascript 复制到 $.offset 和 $.position

javascript - 更漂亮:仅针对文件的更改行运行

javascript - 尝试使用箭头语法重写它

javascript - componentDidMount 内的 "setState(…): Can only update a mounted or mounting component"