【问题标题】:How to check for empty array while spreading an array in function paramater如何在函数参数中扩展数组时检查空数组
【发布时间】:2020-03-24 06:20:20
【问题描述】:

我正在我的反应应用程序中编写一种方法。在 effect.js 中,我写了一个如下所示的函数-

export async function getUserDetails(...request) {
  try {
    // TO DO
  } catch (e) {
    // To DO
  } finally {
    // TO DO
  }
}

我的请求将始终是一个数组,因此我也想处理该场景以检查空数组。我尝试做类似下面的事情,但这给了我错误。有人可以帮我理解我做错了什么。

export async function getUserDetails([...requestPayload] = []) {
  try {
    // TO DO
  } catch (e) {
    // To DO
  } finally {
    // TO DO
  }
}

【问题讨论】:

  • request.length 将为零,如果数组为空...
  • 是的,但我想自己添加该检查参数。
  • 如果数组是空的,你想做什么,很难?
  • @VLAZ,我在这个方法中做一个 api 调用。因此,为了面向未来,我想处理我没有任何请求参数的情况,它不应该进入这个方法并破坏流程。
  • @techiequestie “检查参数”有什么帮助?您需要成为函数一部分的逻辑,以便提前停止执行。您不能从参数字段中中止函数执行。充其量,您可以初始化一些未传入的参数,或者通过解构、休息或其他方式将一些参数重新映射到不同的值。

标签: javascript reactjs ecmascript-6


【解决方案1】:

您可以验证request 变量,例如:

export async function getUserDetails(...request) {
  try {
    // TO DO
    request = !!request && request.length ? request : [];
  } catch (e) {
    // To DO
  } finally {
    // TO DO
  }
}

【讨论】:

    【解决方案2】:

    如果你确定你收到的是一个数组,你可以直接检查长度。

    这样,

    export async function getUserDetails(...request) {
      try {
          if(request.length){
              // TO DO
          }
      } catch (e) {
        // To DO
      } finally {
        // TO DO
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-17
      • 2011-06-28
      • 2010-10-15
      • 2019-09-04
      • 2015-06-09
      • 1970-01-01
      • 2013-04-26
      相关资源
      最近更新 更多