我的一個朋友在現場采訪中被問到下面的問題,并給了 4 分鐘的時間來回答。
問題:在不打開任何其他瀏覽器或使用代碼編輯器的情況下,分析下面的代碼并給出您的判斷是否正確且可以執行,如果不正確,請除錯代碼并解釋您的答案。
const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
for (let i = 0; i < weekDays.length; i ){
if (i === 'Wednesday'){
console.log('Today is Wednesday, join board meeting by 10:00am');
continue;
}
if (i === 'Saturday'){
console.log("Today is Saturday, weekend is great!");
break;
}
console.log(weekDays[i]);
}
uj5u.com熱心網友回復:
只需for ... of宣告,因為陣列可能有不同順序或開始的天數。
對于真正好的代碼,使用語意名稱day而不是i.
const weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
for (const i of weekDays) {
if (i === 'Wednesday') {
console.log('Today is Wednesday, join board meeting by 10:00am');
continue;
}
if (i === 'Saturday') {
console.log("Today is Saturday, weekend is great!");
break;
}
console.log(i);
}
uj5u.com熱心網友回復:
我知道您提供了自己的答案,但是可以輕松地進一步清理此代碼以減少錯誤:
for (let i = 0; i < weekDays.length; i ) {
if (i === 3) {
console.log('Today is Wednesday, join board meeting by 10:00am');
} else if (i === 6) {
console.log("Today is Saturday, weekend is great!");
} else {
console.log(weekDays[i]);
}
}
仍然不是魔術數字的粉絲。也許i === Day.Wednesday或weekDays[i] === Day.Wednesday取決于預期會發生什么變化。
uj5u.com熱心網友回復:
for (let i = 0; i < weekDays.length; i ){
if (i === 3){
console.log('Today is Wednesday, join board meeting by 10:00am');
continue;
}
if (i === 6){
console.log("Today is Saturday, weekend is great!");
break;
}
console.log(weekDays[i]);
}
說明:第 2 行 => (i === 'Wednesday') 和第 6 行 => (i === 'Saturday') 存在錯誤。第 2 行中的“星期三”應更改為 3,而第 6 行中的“周六”應更改為 6。
原因:陣列通過索引回圈遍歷其值,例如 1、2、3...,而不是通過值的名稱。所以陣列,通過回圈不理解 'Wednesday' 和 'Saturday' 但它的索引分別是 3 和 6。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/324134.html
標籤:javascript 数组 循环 迭代
上一篇:連接具有不同第一維的二維陣列
