React发起POST请求时如何用map将数组转为带附加信息的对象数组
实现方案
直接使用JavaScript原生数组的map方法做转换即可,该方法会自动遍历任意长度的原数组,按你定义的规则生成目标对象数组,完全不需要硬编码固定长度的内容。
核心实现逻辑
假设你存储固定公司ID的变量为companyId(替换为你实际的变量名即可),转换代码如下:
// 遍历surveyors数组,生成符合接口要求的对象数组 const requestData = surveyors.map(item => ({ name: item, is_active: true, company: companyId }))
注意:JavaScript中布尔类型真值为全小写的
true,不要写成大写开头的True,否则会触发未定义变量的语法错误。
改造后的完整POST请求代码
const postURL = moduleURL("url"); // 替换为你实际存储公司ID的变量 const companyId = 26; // 动态生成适配任意数组长度的请求参数 const requestData = surveyors.map(surveyorName => ({ name: surveyorName, is_active: true, company: companyId })); requests({ method: "post", url: postURL, data: requestData, }) .then((response) => { console.log(response); }) .catch((err) => console.log(err));
说明
- 不管
surveyors数组长度是0、1还是任意长度,上述写法都能正确生成对应格式的请求参数,不需要手动调整代码 - 如果后续
surveyors数组的元素从纯字符串变为对象,只需要修改map回调里name字段的取值逻辑,整体动态生成的结构不需要改动 - 生成的
requestData数组顺序和原surveyors数组顺序完全一致,如果需要调整排序可以在map调用前加数组排序方法即可
内容的提问来源于stack exchange,提问作者Guts
相关产品推荐
相关产品推荐

