此代码运行正确(将对象数组转换为对象的对象)
ES-lint 然而给出了这个错误:
[eslint] 箭头函数不应返回赋值。 (无返回分配)
请问如何重写才能满足 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);
Object.assign
var x = arr.reduce((obj, item) => Object.assign(obj, {[item. userid]: item}), {})