<分区>
我在尝试让一组对象以不同顺序显示时遇到问题。我们应该让输出显示的姓名按索引、名字、姓氏和年龄排序。当我运行代码时,我只让名称显示一次。附上了一张desire输出的图,有点懵,卡住了。这是我到目前为止所拥有的:
class Names {
constructor(first, last, age) {
this.first = first;
this.last = last;
this.age = age;
}
}
function printObject(allNames, sortType, message) {
if (sortType == "first") {
allNames.sort(function(a, b) {
return a.first.localeCompare(b.first);
});
}
if (sortType == "last") {
allNames.sort(function(a, b) {
return a.last.localeCompare(b.last);
});
}
if (sortType == "age") {
allNames.sort(function(a, b) {
return a.age - b.age;
});
}
for (let i = 0; i < allNames.length; i++) {
console.log(message);
console.log(allNames[i].first + " " + allNames[i].last + " " + allNames[i].age);
}
}
// main fucntion
function main() {
var allNames = [];
allNames.push(new Names("John", "Doe", 40));
allNames.push(new Names("Jay", "Thrift", 30));
allNames.push(new Names("Card", "Ace", 20));
printObject(allNames, "age", "Message");
}
main();