如何修复以下代码行的 Es-lint“无返回分配”

问题描述 投票:0回答:2

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

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

[eslint] 箭头函数不应返回赋值。 (无返回分配)

请问如何重写才能满足 es-lint

var x = arr.reduce((obj, item) => (obj[item.userid] = item, obj), {})
javascript eslint arrow-functions
2个回答
4
投票

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

我会这样写:

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);


2
投票
你可以使用

Object.assign



var x = arr.reduce((obj, item) => Object.assign(obj, {[item. userid]: item}), {})
    
© www.soinside.com 2019 - 2024. All rights reserved.