Javascript 当在函数中使用return关键字时,提高对它的理解

Javascript 当在函数中使用return关键字时,提高对它的理解,javascript,Javascript,我发现在这种情况下使用return关键字会很奇怪,因为它被使用了两次。有没有办法重构此代码块,使return关键字不需要像这样重复出现两次: return arr.filter(function (num) { return num > 0 && num % parseInt(num) === 0; 下面是整个代码块 const squareList = function squareList(arr) { return arr.filter(functi

我发现在这种情况下使用return关键字会很奇怪,因为它被使用了两次。有没有办法重构此代码块,使return关键字不需要像这样重复出现两次:

  return arr.filter(function (num) {
    return num > 0 && num % parseInt(num) === 0;
下面是整个代码块

const squareList = function squareList(arr) {
  return arr.filter(function (num) {
    return num > 0 && num % parseInt(num) === 0;
  }).map(function (num) {
    return Math.pow(num, 2);
  });
};

const squaredIntegers = squareList([-3, 4.8, 5, 3, -3.2]);

console.log(squaredIntegers);

您的代码包含三个不同的函数。在
.filter()
回调中有一个
return
语句,在
.map()
回调中有一个
return
语句。它本身就很有意义。而且
Math.floor(num)
parseInt(num)
更好。JS允许在其他函数中定义函数。
return
关键字仅从其封闭函数退出。如果您希望避免这种情况,可以将这些内部函数移到外部函数之外,使它们成为兄弟函数。以这种方式声明辅助函数是绝对标准的。我宁愿建议习惯它,而不是重构代码。您可以在外部创建helper函数,并且只为它们使用标识符,但这会损害可读性。在这种特定情况下,您还可以使用箭头函数的缩写来表示返回,这也将删除
返回
,甚至可能提高可读性。但是,这在所有情况下都是不可能的。为了详细说明上面的最后一点,举个例子:
return arr.filter(num=>num>0&&num%parseInt(num)==0)