Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象数组[{quot;key";:“value";},{quot;key";:“value";}]获取特定值_Javascript_Reactjs - Fatal编程技术网

Javascript 从对象数组[{quot;key";:“value";},{quot;key";:“value";}]获取特定值

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

我正在尝试与processmaker的API交互。 我制作了一个简单的表单来验证和获取授权令牌,这是与API的其余部分交互所需的

我能够在登录后使用令牌输出已创建项目的json响应。响应是一个对象数组

我需要获取api请求的
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和名称做什么?