Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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 将状态数组值转换为键值对_Javascript_Json_Reactjs_State - Fatal编程技术网

Javascript 将状态数组值转换为键值对

Javascript 将状态数组值转换为键值对,javascript,json,reactjs,state,Javascript,Json,Reactjs,State,我有一个状态对象数组。我想将数组中的值转换为键值对 因此,我的状态如下: 0: {emp_code: "a001", company_code: "company_a", name: "abx", details: Array(3), details_dtypes: Array(3)} 1: {emp_code: "b002", company_code: "company_b", name: "xbz ", details: Array(2), details_dtypes: Array(2)

我有一个状态对象数组。我想将数组中的值转换为键值对

因此,我的状态如下:

0: {emp_code: "a001", company_code: "company_a", name: "abx", details: Array(3), details_dtypes: Array(3)}
1: {emp_code: "b002", company_code: "company_b", name: "xbz ", details: Array(2), details_dtypes: Array(2)}
//and so on adding other values to the array

{
emp_and_company:
{
  "company_a" : ["a001","a002"],
  "company_b" : ["b002","b003"]
}
}

我想将emp代码和company_代码转换成一个键值对,并像JSON对象一样显示; 因此JSON输出如下所示:

0: {emp_code: "a001", company_code: "company_a", name: "abx", details: Array(3), details_dtypes: Array(3)}
1: {emp_code: "b002", company_code: "company_b", name: "xbz ", details: Array(2), details_dtypes: Array(2)}
//and so on adding other values to the array

{
emp_and_company:
{
  "company_a" : ["a001","a002"],
  "company_b" : ["b002","b003"]
}
}


因此,我只想将公司代码作为键,将值作为emp代码

您可以通过以下方式以简洁的方式实现这一点:

const data=[{emp_代码:a001,公司代码:公司a,名称:abx,详细信息:[],详细信息类型:[]},{emp_代码:b002,公司代码:公司b,名称:xbz,详细信息:[],详细信息类型:[]},{emp_代码:a002,公司代码:公司a,名称:xbz,详细信息:[],详细信息类型:[]},{emp_代码:b003,公司代码:公司b,详细信息:[],详细信息\u数据类型:[]] 让结果=data.reducer,c=> r[c.company_code]=[…r[c.company_code]| |[],c.emp_code]&&r,{}
console.logresultfrom您从何处获得a002和b003?@brk from//等等您的答案似乎正确,但它给了我一个错误:data.reduce不是一个函数。我在一个函数中使用了您的代码,该函数只需点击一个按钮即可调用;我保存了如下数据:const data=JSON.stringifythis.state.company\u data;但是JSON.stringify将返回一个字符串,您需要一个数组来使用array.reduce。它应该给你数据。reduce不是一个函数。哦,它明白了!我现在尝试在数据中存储组件的状态,但它返回一个未定义的数组