我的forEach循环在javascript字典中的顺序相反,为什么?

我的forEach循环在javascript字典中的顺序相反,为什么?,javascript,dictionary,foreach,Javascript,Dictionary,Foreach,在我的程序中,我从学生那里得到分数,并计算他们的分数。为了检查他们得到了什么分数,我在字典中列出了分数数据,我想检查我的分数是否大于某个分数,如果不是,给他们一个a,它将继续,直到找到正确的分数。因此,我将dictionary对象安排为从最高级别到最低级别,因此一旦它找到合适的级别停止并将级别打印给用户。出于某种原因,它是从最低的键对象循环到最高的键,我该如何修复它?从第一个关键点循环到最后一个关键点,无论其值是多少 var dict = {94: '"It is, A, excellent"'

在我的程序中,我从学生那里得到分数,并计算他们的分数。为了检查他们得到了什么分数,我在字典中列出了分数数据,我想检查我的分数是否大于某个分数,如果不是,给他们一个a,它将继续,直到找到正确的分数。因此,我将dictionary对象安排为从最高级别到最低级别,因此一旦它找到合适的级别停止并将级别打印给用户。出于某种原因,它是从最低的键对象循环到最高的键,我该如何修复它?从第一个关键点循环到最后一个关键点,无论其值是多少

var dict = {94: '"It is, A, excellent"', 90: '"It is, A-, great job"', 87: '"It is, B+, great"', 84: "It is, B, amazing", 80: "It is, B-, study little more", 77: "It is, C+, you could do better", 74: "It is, C", 70: "It is, C-", 67: "Is your grade, D+"}
 function gradeCheck(sum){
            var tex;
            Object.keys(dict).forEach( function(key){
                //console.log(key, dict[key]);
                /*if(sum>=key && (sum-key)<6 ){
                    tex = dict[key];
                    return tex;
                }*/
                if(sum > key){
                    tex = dict[key];
                    return tex;
                }
            });
        }
var dict={94:“‘这是,A,非常好’”,90:“‘这是,A-,做得很好’”,87:“‘这是,B+,很好’”,84:“这是,B,太棒了”,80:“这是,B-,再多学习一点”,77:“这是,C+,你可以做得更好”,74:“这是,C-,70:“这是,C-”,67:“你的成绩,D+”
功能等级检查(总和){
var-tex;
Object.keys(dict.forEach)函数(key){
//console.log(key,dict[key]);
/*if(sum>=键&(sum键)键){
tex=dict[键];
返回tex;
}
});
}
我注释了我的旧零件代码

我希望有人能帮忙,谢谢使用数组

var等级=[
{成绩:94,信息:'这是,一个,非常好'},
{成绩:90分,留言:'这是,一个-,很棒的工作'},
{等级:87,信息:'是的,B+,很棒'},
{成绩:84,信息:'这是,B,令人惊讶'},
{成绩:80,信息:'是,B-,再学习一点'},
{成绩:77,信息:'是的,C+,你可以做得更好',
{等级:74,信息:'是,C'},
{等级:70,信息:'It is,C-'},
{成绩:67,信息:'是你的成绩,D+'}
];
功能等级检查(总和){
返回grades.find(g=>g.grade控制台日志(等级检查(75)),因为JS对象不保留键的插入顺序。使用贴图而不是普通对象

var dict = new Map();
dict.set(94, 'It is, A, excellent');
dict.set(90, 'It is, A-, great job');
dict.set(87, '"It is, B+, great"');

function gradeCheck(sum) {
    var tex;
    for (var [key, value] of dict) {
        if (sum > key) {
            tex = value;
            console.log(tex);
            return tex;
        }
    }

} 

相关:。在这种情况下,通过
Object.keys
返回的键的顺序没有很好的定义,如果您需要计算特定的顺序,您应该在迭代之前自己对数组进行排序。我认为在对象上使用数字作为键不是最好的方法。我会使用数组。