Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
322 views
in Technique[技术] by (71.8m points)

Use reduce for group array by identifier, JavaScript


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can do the following,

var arraJson = [
{
    "name" : "a",
    "department": "a"
},
{
    "name" : "b",
    "department": "a"
},
{
    "name" : "c",
    "department": "b"
}]

res = arraJson.reduce((prev, curr) => {
  let index = prev.findIndex(item => item.department === curr.department);
  if(index > -1) {
    prev[index].employee.push(curr.name);
  } else {
    prev.push({ 'department': curr.department, 'employee': [curr.name] });
  }
  return prev;
}, []);

console.log(res);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...