如何用一种方法接受2种类格式数据呢?

我有这种需求,
data的格式可能为:

data: {
      dataList: [
        {
          column1: 'value1',
          column2: 'value2',
          column3: ''
        }
      ],
      fields: ['colum1', 'column2', 'column3']
    }

或者:

data: {
  "column1": [...], 
  'column2': [...],
  'column3': [...]
}

那么按照我的方式,需要写2个方法接受数据:
方法:

exportExcelFileBySeparatedFieldAndData(data){
    // 接受第一种data
}

exportExcelFileByField(data){
    // 接受第二种data
}

请问下,是否能用重载的方式进行优雅一点进行这样的处理?

阅读 1.1k
3 个回答
新手上路,请多包涵

用 hasOwnProperty 判断 data 是否存在 dataList 字段
有就执行 exportExcelFileBySeparatedFieldAndData
没有就执行 exportExcelFileByField

想用一个方法的话,在方法里去判断接收到的参数,做不同的处理就行了

当然可以啊。你自己想办法区分出来传进来的参数是什么数据结构的就行。

exportExcelFileByField(data) {
  if (Array.isArray(data.dataList) && Array.isArray(data.fields)) {
   // 1
  } else {
     // 2
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题