我有一个对象数组
<块引用>const myarray = [ { name: '亚历克斯', 工作:'医生'},{ name: '约翰', 工作:'出租车司机'},{ name: '马克', 工作:'出租车司机' }, ]
我如何为每个作业打印作业名称,然后打印所有对应的对象?
例如我希望能够显示:
医生: 亚历克斯
出租车司机: 约翰, 马克
答案 0 :(得分:1)
首先创建对象,它将存储像 obj = {"Taxi driver": [],"Doctor": [] }
这样的作业,然后您可以在操作对象后传递数组 myarray.forEach(e => obj[e.job].append(e.name))
。最好的问候
答案 1 :(得分:1)
它返回一个你想要的结果的对象
const myarray = [ { name: 'Alex', job: 'Doctor' }, { name: 'John', job: 'Taxi Driver' }, { name: 'Marc', job: 'Taxi Driver' }, ]
function getJobs() {
let result = {};
myarray.forEach(function t(e) {
if (!result.hasOwnProperty(e.job)) result[e.job] = [];
result[e.job].push(e.name);
});
return result;
}
console.log(getJobs());
答案 2 :(得分:1)
你可以试试这样的:
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));
}