2 回答

TA貢獻2051條經(jīng)驗 獲得超10個贊
您的一些錯誤是
1。您正在將 (int)age 與 (array)grade 進行比較 最好的方法是age < grade.length
2。grade數(shù)組的索引是從 0 到 5,即grade[0] == [6, 'Grade 1'],這意味著如果年齡大于 5,你不會有結(jié)果。
另一種方法,如果你真的想打印出與年齡對應(yīng)的等級,
// age = 7;
let yourGrade = grade.find(e => {
return e[0] == age;
});
// console.log(yourGrade); // [7, 'Grade 2']
// console.log(yourGrade ? yourGrade[1] : "You’re either too young or too old");
// Grade 2
上面的代碼嘗試查看您的(數(shù)組)等級并返回第一個項目等于計算年齡的值的第一次出現(xiàn)。
有很多方法可以實現(xiàn)這一目標。
編輯
或者,如果您對while循環(huán)特別感興趣,您可以執(zhí)行以下操作:
//age = 7;
let yourGrade;
let i = grade.length;
while(i––) {
if (grade[i][0] == age) {
yourGrade = grade[i];
break;
}
}
console.log(yourGrade);
//[7,'Grade 2']
//try with age = 5 //undefined

TA貢獻1839條經(jīng)驗 獲得超15個贊
如果您正在尋找年齡和年級,這可能是您的最佳解決方案。
請記住,這里的等級是二維數(shù)組,您將等級的第一個索引元素與年齡進行比較。所以你需要首先從等級數(shù)組的第一個元素中找到最大值。
var dob = '20120810';
var year = Number(dob.substr(0, 4));
var month = Number(dob.substr(4, 2)) - 1;
var day = Number(dob.substr(6, 2));
var today = new Date();
var age = today.getFullYear() - year;
if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
age--;
}
console.log("You are " + (age + 1) + " Years old");
var grade = [
[6,'Grade 1'],
[7,'Grade 2'],
[8,'Grade 3'],
[9,'Grade 4'],
[10,'Grade 5'],
[11,'Grade 6'],
];
maxAge=grade.reduce(function(max, grade) {
return Math.max(max, grade[0]);
}, -Infinity);
for (i = 0; i < maxAge; i++){
if(typeof grade[i] !== 'undefined' && grade[i][0]==age){
console.log(grade[i][1]);
}
}
另一種選擇可能是:
var dob = '20120810';
var year = Number(dob.substr(0, 4));
var month = Number(dob.substr(4, 2)) - 1;
var day = Number(dob.substr(6, 2));
var today = new Date();
var age = today.getFullYear() - year;
if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) {
age--;
}
//console.log("You are " + (age + 1) + " Years old");
var grade = [
[6,'Grade 1'],
[7,'Grade 2'],
[8,'Grade 3'],
[9,'Grade 4'],
[10,'Grade 5'],
[11,'Grade 6'],
];
let yourGrade = grade.find(e => {
return e[0] == age;
});
console.log('Age: ' + yourGrade[0] + ' and Grade: ' + yourGrade[1]);
添加回答
舉報