Javascript如何将数组转换为批量API调用要求的参数格式
实现方案
直接使用数组的reduce方法遍历生成目标结构即可,比你现有的Object.assign方案更简洁:
// 遍历customerList生成符合要求的批量参数对象 const batchRequestParams = customerList.reduce((result, customer, index) => { result[index] = { url: '/:endpoint', // 替换为实际的单条请求接口地址 data: { email: customer.email } } return result }, {}) // 直接传入调用批量接口 api.post('/:batch_endpoint', batchRequestParams)
reduce会以空对象作为初始值,遍历数组的每一个元素时,以元素索引为键,填充你需要的url和data字段结构,最终生成的对象完全符合批量API的入参要求。
原有方案的修正方式
如果你要沿用现有的Object.assign思路,只需要对生成的对象做一次遍历重构字段即可:
var customerObject = Object.assign({}, customerList) var batchRequestParams = {} // 遍历重构每一个键对应的结构 for (let index in customerObject) { batchRequestParams[index] = { url: '/:endpoint', data: { email: customerObject[index].email } } }
注意:你给出的示例数组里对象写法存在笔误,
{'email: ex@mail.com', 'name': 'John'}应该修正为{'email': 'ex@mail.com', 'name': 'John'},否则会取不到email字段的值。
内容的提问来源于stack exchange,提问作者sags95
相关产品推荐
相关产品推荐

