Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将递归函数转换为递归箭头函数_Javascript_Arrow Functions - Fatal编程技术网

Javascript 将递归函数转换为递归箭头函数

Javascript 将递归函数转换为递归箭头函数,javascript,arrow-functions,Javascript,Arrow Functions,我有以下带有递归函数的代码,我想将其转换为递归箭头函数: const hasAccess = menuSections.some(function s(x) { if (x.link === route.routeConfig.path) { return true; } if (x.sections) { return (x.sections.some(s)); } return false; }); 你知道怎么做吗?你可以使用自己的函数进行回调,并缩

我有以下带有递归函数的代码,我想将其转换为递归箭头函数:

const hasAccess = menuSections.some(function s(x) {
  if (x.link === route.routeConfig.path) {
    return true;
  }

  if (x.sections) {
    return (x.sections.some(s));
  }

  return false;
});

你知道怎么做吗?

你可以使用自己的函数进行回调,并缩短返回值的条件

const 
    check = x => x.link === route.routeConfig.path || x.sections && x.sections.some(check),
    hasAccess = menuSections.some(check);

为什么?该函数不使用
参数
或任何其他由箭头函数进行不同处理的函数。它确实使用自己的名称进行递归,并且箭头函数是匿名的。对于您的问题,函数表达式比箭头函数有好处,但箭头函数比函数表达式没有任何好处。@Quentin因为这是练习的要求,所以它可能应该是
!!x、 节
,这样,根据OP,它返回一个布尔值,而不是未定义的值,或null,或0或….它是在
某些
中使用的回调,因此任何falsy值都有效。