javascript - 有没有办法在对象中应用条件?
问题描述
我需要提供一个解决方案来显示班级中学生的最高分。
function highestScore (students) {
// 这里的代码 }
// TEST CASE
console.log(highestScore([
{
name: 'Daisy',
score: 90,
class: 'foxes'
},
{
name: 'Alexander',
score: 85,
class: 'wolves'
},
{
name: 'Sergio',
score: 74,
class: 'foxes'
},
{
name: 'Anabelle',
score: 78,
class: 'wolves'
}
]));
From the parameter, the function would return the name of each class and
display the highest student's name and score of that student.
function highestScore (students) {
var classes = {};
var scores = [];
for(i=0; i<students.length; i++){
var inputClass = students[i].class;
var inputScore = students[i].score;
var inputName = students[i].name;
var classScore = [];
var isExist = false;
var object = Object.values(class);
return classScore;
}
// TEST CASE
console.log(highestScore([
{
name: 'Daisy',
score: 90,
class: 'foxes'
},
{
name: 'Alexander',
score: 85,
class: 'wolves'
},
{
name: 'Sergio',
score: 74,
class: 'foxes'
},
{
name: 'Anabelle',
score: 78,
class: 'wolves'
}
]));
The result would show something like this.
// {
// foxes: { name: 'Daisy', score: 90 },
// wolves: { name: 'Alexander', score: 85 }
// }
解决方案
我目前的解决方案如下。
function highestScore (students) {
var object = {};
var result = [];
for (var i=0; i<students.length; i++){
var nameInput = students[i].name
var scoreInput = students[i].score
var classInput = students[i].class
if(object[classInput] === undefined){
object[classInput] = {
name: nameInput,
score: scoreInput,
}
}
for(var j=0; j<students.length; j++){
if(students[j].class === object[students[i].class] && students[j].score > object[students[i].class].score){
object[classInput] = {
name: students[j].name,
score: students[j].score,
}
}
}
}
return object;
}
但是,如果后面的学生得分高于初始值,我无法插入新值。
// TEST CASE
console.log(highestScore([
{
name: 'Dimitri',
score: 90,
class: 'foxes'
},
{
name: 'Alexei',
score: 85,
class: 'wolves'
},
{
name: 'Sergei',
score: 94,
class: 'foxes'
},
{
name: 'Anastasia',
score: 78,
class: 'wolves'
}
]));
推荐阅读
- security - Apache Camel paho socketFactory 设置
- python - 全局变量未从计算变量接收数据,因此无法使用 django 在 html doc 上显示数据
- python-3.x - Celery - 如何在 Chord 中使用块?
- android-studio-4.1 - 如何在 Android Studio 中将我的应用文件存储为公开?
- docker - 尝试在后台的 docker 文件中运行 npm start 命令
- sql - 查询给定时间范围内的重复事件
- mysql - onchange 下拉列表(州、国家、城市)的 onchange
- twilio - 没有使用 twilio 通知服务接收短信,控制台中没有调试错误?
- sql - Oracle 上以逗号分隔的字符串中的字符串的 Concat 列表(隐藏参数)
- azure-devops - 使用 terraform -out 参数