javascript - 将对象数组转换为数组并通过 Axios 作为 GET API 的参数发送
问题描述
我有一个反应原生应用程序显示一些成分,用户可以选择其中一些来过滤一个特定的食谱并查看所有详细信息,我的疑问是,如何将成分对象数组转换为“名称”数组和通过 Axios 发送?
我从 API 接收的对象数组:
Array [
Object {
"id": 8,
"isSelected": true,
"name": "leite condensado",
},
Object {
"id": 9,
"isSelected": true,
"name": "creme de leite",
},
]
并且 API 期望类似
/report?name='suco de limão', 'bolacha'
因此,我只需要从名称 Key 中提取值作为 Array。
任何人都知道我是否可以在前面做它以保持 API 没有任何更新?
解决方案
您可以使用 Array.prototype.map() 函数。Array.prototype.map() MDN 文档
这基本上是为每个元素调用当前数组上的回调 fn 并根据您在回调 fn 中编写的代码返回一个新数组。我在下面的代码中所做的只是从原始数组中检索每个对象的“名称”属性并将这些名称作为新数组返回。
然后遍历 names 数组并附加到您的 api URL。我在下面的代码片段中完成了这两件事,您可以尝试运行它以更好地理解它。
const arr = [
{
id: 8,
isSelected: true,
name: 'leite condensado',
},
{
id: 9,
isSelected: true,
name: 'creme de leite',
},
];
const nameArr = arr.map(obj => obj.name);
//logging names array to console
console.log(nameArr);
//appending names to your api url
let url = `/report?name=`;
nameArr.forEach((name, index, ar) => {
index === ar.length - 1 ? (url += ` '${name}'`) : (url += `
'${name}', `);
});
//logging updated API URL to console
console.log(url);
推荐阅读
- regex - RegEx 不匹配 PowerShell 中的序列
- mysql - MYSQL 查询以查找类似于连接字符串的字符串
- javascript - 访问和单击没有 ID 或类标签的按钮
- javascript - 如何使用 lodash _.size 确定属性出现在对象数组上的次数?
- unity3d - 如何在正交相机中使世界画布 ui 图像大小相等?
- powershell - 将命令作为脚本的一部分运行但单独运行时不会出错
- video - 将一批mp4视频的最后一帧提取为jpg
- ios - 从中心转换 UIView
- javascript - 在 jquery get() 方法中遵循重定向 URL
- bash - 在 bash 中使用查找/执行命令设置文件格式