我在解决一个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