我在解決一個JavaScript問題時被卡住了。我不明白的是如何打印出數組中數量最多的字符串。如何獲得數組中數值最大的字符串?
你能幫我指出我的代碼在哪裏出問題嗎?
問題的描述:
決定一週中的一天有數量最多的人訪問的 寵物商店。如果一週中超過一天的流量達到相同的最高流量,則應返回包含天數(以任意順序)的數組。 (例如[「星期三」,「星期四」])。如果輸入爲空或空數組,函數 應該返回null。 @param week Weekday對象的數組 @返回一個字符串,其中包含一週中最受歡迎的一天的名稱(如果只有一個最受歡迎的日子)以及包含最受歡迎日子的名稱的字符串數組是一個更重要的是最受歡迎
代碼:
function mostPopularDays(week) {
if (typeof week === "undefined" || week === null || week.length === 0)
{
return null;
}
var result;
var traffic;
for (i = 0; i < week.length; i++) {
if (week[i].traffic > traffic) {
traffic = week[i].traffic;
result = week[i].name;
}
}
return result;
}
function Weekday(name, traffic) {
this.name = name;
this.traffic = traffic;
}
感謝,
變種流量;流量將在for循環中未定義 – marvel308
您可以定義'var result'和'var traffic'兩次。當你在'for'循環中賦值給它們時,你不應該再寫'var'。此外,如果您正確縮進,您的代碼將更具可讀性並且更容易找到錯誤。你可以使用像[漂亮](https://prettier.io/playground/)這樣的工具來清理它。 –
感謝您的評論@ marvel308和@ Rory O'Kane。我在循環中刪除了'var',但它不起作用。我創建了一個[codepen demo](https://codepen.io/aaayumi/pen/eGexMw?editors=1010)。我用普瑞蒂爾修改了代碼。 – aaayumi