这是我的第一次剪辑:
const planLimits = {plan1: {condition1: 50, ...}}
function initialisePlanLimits(planLimits) {
const limits = new Map();
Object.keys(planLimits).map((planId) => (
const limitMap = new Map(Object.entries(planLimits[planId]));
limits.set(planId, limitMap);
));
return limits;
}
linter 会标记此错误:
error Expected to return a value in this function array-callback-return
所以我改成了这个版本:
function initialisePlanLimits(planLimits) {
const limits = new Map();
Object.keys(planLimits).map((planId) => (
limits.set(planId, new Map(Object.entries(planLimits[planId])))
));
return limits;
}
它抛出另一个错误
Unexpected parentheses around single function argument having a body with no curly braces arrow-parens
我的问题:
1) 我认为我可以通过粘贴
return null
来修复我的第一个版本在 curry 括号内。但是有没有更好、更优雅的方式呢?在这种情况下,虚假的 return 语句没有意义2)为什么第二个版本失败?不是和第一个版本一样吗?
最佳答案
如果我使用 forEach
而不是 map
,不会引起array-callback-return
Lint 错误
Object.keys(planLimits).forEach((planId) => (
const limitMap = new Map(Object.entries(planLimits[planId]));
limits.set(planId, limitMap);
));
关于ecmascript-6 - 如何满足 lint 规则 'array-callback-return' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43022558/