Javascript 从对象数组[{quot;key";:“value";},{quot;key";:“value";}]获取特定值
我正在尝试与processmaker的API交互。 我制作了一个简单的表单来验证和获取授权令牌,这是与API的其余部分交互所需的 我能够在登录后使用令牌输出已创建项目的json响应。响应是一个对象数组 我需要获取api请求的Javascript 从对象数组[{quot;key";:“value";},{quot;key";:“value";}]获取特定值,javascript,reactjs,Javascript,Reactjs,我正在尝试与processmaker的API交互。 我制作了一个简单的表单来验证和获取授权令牌,这是与API的其余部分交互所需的 我能够在登录后使用令牌输出已创建项目的json响应。响应是一个对象数组 我需要获取api请求的prj_uid,所以我想提取这些,但我使用map时运气不好 如何迭代响应并为数组中的每个对象获取prj_name和prj_uid import React,{useState,useffect}来自“React”; //从“反应响应嵌入”导入响应嵌入; 常量任务=({logg
prj_uid
,所以我想提取这些,但我使用map时运气不好
如何迭代响应并为数组中的每个对象获取prj_name
和prj_uid
import React,{useState,useffect}来自“React”;
//从“反应响应嵌入”导入响应嵌入;
常量任务=({loggedIn})=>{
常量[hasError,setErrors]=useState(false);
const[projects,setProjects]=useState([]);
常量url=”http://127.0.0.1:8080/api/1.0/workflow/project";
useffect(()=>{
让access_token=sessionStorage.getItem(“access_token”);
异步函数fetchData(){
const response=等待获取(url{
方法:“获取”,
事实上,
超时:1000,
标题:{
授权:“承载人”+访问令牌
}
});
回答
.json()
.then(response=>setProjects(response))
.catch(err=>setErrors(err));
}
fetchData();
},[loggedIn]);
log(JSON.stringify(loggedIn)+“登录,显示项目”);
console.log(项目+“项目”);
如果(!loggedIn){
返回误差;
}否则{
返回(
登录成功
项目:
{JSON.stringify(项目)}
出现错误:{JSON.stringify(hasError)}
);
}
};
导出默认任务;
严格的回应:
[
{
"prj_uid":"1755373775d5279d1a10f40013775485",
"prj_name":"BPMN Process",
"prj_description":"This is a processmaker BPMN Project",
"prj_category":"8084532045d5161470c0de9018488984",
"prj_type":"bpmn",
"prj_create_date":"2019-08-13 08:50:25",
"prj_update_date":"2019-08-13 09:04:16",
"prj_status":"ACTIVE"
},
{
"prj_uid":"7459038845d529f685d84d5067570882",
"prj_name":"Purchase Request",
"prj_description":"",
"prj_category":"2284311685392d2e70f52e7010691725",
"prj_type":"bpmn",
"prj_create_date":"2019-08-13 11:30:48",
"prj_update_date":"2019-08-13 12:20:05",
"prj_status":"ACTIVE"
}
]
Array.map()。
这很简单:
let mappedObject = result.map( el => ({ prj_name, prj_uid }) );
el
是数组中的每个元素,我们用一个只包含prj_name
和prj_uid
的对象构造新数组。因为el
alraready已经有了那些具有这些名称的属性,所以我们不需要编写{prj_name:el.prj_name}
当我们构造新对象时,它是隐含的,并且将只使用那里的属性名称来完成操作
mappedObject现在将保存一个仅由所请求的属性组成的对象数组
您可能需要阅读更多关于map的内容以更好地理解它-如果loggedIn
是json对象,那么您可以执行以下操作:
const uidNameArr = loggedIn.map((item) => { // returns an array of arrays with the values you want.
return [item.prj_uid, item.prj_name]
})
uidNameArr.forEach(([uid,name]) => {
console.log(`${name} has a uid of ${uid}`)
})
您好,frleo,您可以使用来实现这一点您想对id和名称做什么?