此代码运行正确(将对象数组转换为对象的对象)
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/