按对象字段对数组进行排序

卢吉

我有一个对象数组

const myarray = [ { name: 'Alex', job: 'Doctor' }, { name: 'John', job: 'Taxi Driver' }, { name: 'Marc', job: 'Taxi Driver' }, ]

我如何为每个作业打印作业名称,然后打印所有相应的对象?

例如,我希望能够显示:

医生:亚历克斯

出租车司机:约翰、马克

光谱

你可以尝试这样的事情:

const myarray = [ { name: 'Alex', job: 'Doctor' }, { name: 'John', job: 'Taxi Driver' }, { name: 'Marc', job: 'Taxi Driver' } ]
const sorted = {}
myarray.forEach((e)=>{
  if(e.job in sorted){
    sorted[e.job].push(e.name);
  }else{
    sorted[e.job] = [e.name]
  }
})
console.log(sorted);

要以您想要的格式打印它们:

const myarray = [ { name: 'Alex', job: 'Doctor' }, { name: 'John', job: 'Taxi Driver' }, { name: 'Marc', job: 'Taxi Driver' } ]
const sorted = {}
myarray.forEach((e)=>{
  if(e.job in sorted){
    sorted[e.job].push(e.name);
  }else{
    sorted[e.job] = [e.name]
  }
})
for(const key in sorted){
  var str = key+': ';
  sorted[key].forEach(e=>str+=e+', ');
  console.log(str.slice(0, -2));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章