如何满足 lint 规则 'array-callback-return'?

Ant*_*ong 4 ecmascript-6 eslint

这是我的第一次剪辑:

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;
}
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

它引发另一个错误 Unexpected parentheses around single function argument having a body with no curly braces arrow-parens

我的问题:

1)我认为我可以通过将 areturn null插入咖喱括号内来修复我的第一个版本。但是有没有更好、更优雅的方式呢?在这种情况下,虚假的 return 语句没有意义

2)为什么第二个版本失败?不是和第一个版本一样吗?

Ant*_*ong 7

如果我使用forEach而不是map,它不会导致array-callback-returnlint 错误

 Object.keys(planLimits).forEach((planId) => (
    const limitMap = new Map(Object.entries(planLimits[planId]));
    limits.set(planId, limitMap);
  ));
Run Code Online (Sandbox Code Playgroud)