Ajax对JavaScript中JSON数组的响应

问题描述 投票:-4回答:2

我想用JavaScript实现这一点。

[{ "employeeName":"emp1", "Deaprtment":"dept1"},
 { "employeeName":"emp2", "Deaprtment":"dept1"}
]

 {"dept1":{"emp1","emp2"}}

请使用JavaScript建议可能的解决方案。

javascript json
2个回答
1
投票

您给定的预期输出无效,但您可以获得这样的输出。

var arr = [{ "employeeName":"emp1", "Deaprtment":"dept1"},
 { "employeeName":"emp2", "Deaprtment":"dept1"}
];

var newObj = {};
for(let i in arr){
  if(arr[i].Deaprtment in newObj){
    newObj[arr[i].Deaprtment].push(arr[i].employeeName);
  }else{
    newObj[arr[i].Deaprtment] = [arr[i].employeeName];
  }
}
console.log(newObj);

0
投票

如果你看输出为{"dept1":["emp1","emp2"]},那么使用reduce

var output = arr.reduce( ( a, b ) => ( 
   a[ b.Deaprtment ] = a[ b.Deaprtment ] || [], 
   a[ b.Deaprtment ].push( b.employeeName ), 
a ) ,{} );
© www.soinside.com 2019 - 2024. All rights reserved.