这是我的第一次剪辑:
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
来修复我的第一个版本。但是有更好,更优雅的方式吗?在这种情况下,伪造的回报声明没有意义
2)为什么第二个版本失败了?是不是相当于第一个版本?
答案 0 :(得分:2)
如果我使用forEach
代替map
,则不会导致array-callback-return
lint错误
Object.keys(planLimits).forEach((planId) => (
const limitMap = new Map(Object.entries(planLimits[planId]));
limits.set(planId, limitMap);
));
答案 1 :(得分:0)
关于使用“ forEach”的公认答案是正确的。请阅读以下ESLint documentation的说明,
数组有几种过滤,映射和折叠的方法。如果我们忘记在这些回调中编写return语句,那可能是一个错误。如果您不想使用返回值或不需要返回的结果,请考虑使用.forEach。
答案 2 :(得分:-1)
使用ReactJS的代码示例,它显示了一组元素......
showclasses.map( (showclass, index) => {
$('.' + showclass).show();
});
我收到此错误...
Expected to return a value in arrow function array-callback-return
如果我向上面的函数添加一个返回值,则错误消失了,如下所示:
showclasses.map( (showclass, index) => {
return $('.' + showclass).show();
});
map()功能强大。不要扔掉那个工具。