我是一个很新的Javascript和我正在努力与我的作业之一。
这是上下文:
操作此数据
变量等级="jim|25岁,苏|32岁玛丽|34岁,安|22岁,泰德|28岁,弗兰克|15、丽莎|19,麦克|30安|26岁,毗瑟奴|27英寸;
使用内联JavaScript代码创建一个HTML页面,以更易读的格式显示学生数据,如下所示:
名称1-评分1
名称2-评分2
您的程序应该:
- 显示每个学生的姓名和分数
- 学生姓名的第一个字母大写
- 显示学生总数,
- 显示最低、最高和平均分数
现在,我能够以更易读的格式打印姓名和成绩,但我不知道如何将每个姓名的第一个字母大写,以及如何输出最低、最高和平均成绩。
下面是我的代码:
<body>
<p id="demo"></p>
<script>
var grades =
"jim|25, sue|32, mary|34, ann|22, ted|28, frank|15, lisa|19, mike|30, ahn|26, vishaya|27";
let result = grades.split(", ");
function getNameAndGrade(Str) {
for (let i in result) {
document.write(
` <b>Name: </b>${result[i].slice(
0,
result[i].indexOf("|")
)} <b>Grade: </b>${result[i].slice(-2)} <br>`
);
}
}
getNameAndGrade(grades);
</script>
</body>
3条答案
按热度按时间ffx8fchx1#
以下是一种将每个姓名的首字母大写并输出最低、最高和平均成绩的方法:
在这段更新后的代码中,我首先使用两个数组分别存储姓名和分数,然后使用for循环遍历names数组,并使用
charAt(0).toUpperCase()
方法将每个姓名的首字母大写。并使用Array.prototype.push()
方法将大写名称添加到names数组中。我使用了另一个for循环来迭代scores数组,并使用Math.min()
和Math.max()
方法来查找最低分和最高分,然后我用scores.reduce()
方法求出平均分,我还用scores.length
求出学生总数。ubbxdtey2#
你需要一些重构。
首先,不要让你的函数直接写DOM,而是让它返回你想要的数据,并且更喜欢模块化结构(函数很小,只执行一个微小的特定任务)
要将第一个字母大写,请使用
substring
方法(0是子字符串的位置,1是子字符串的长度)获取它,然后使用capitalize
将其大写,然后使用substring(1)
添加字符串的其余部分(1表示没有第一个字母)。将逻辑和视图分开是一个很好的做法。这意味着,一个函数用于计算,另一个函数用于将其写入屏幕。这有助于重用代码。
为了得到最小值,最大值和平均值,我们使用
map
方法,它唯一要做的就是把score而不是整个名称和score对象放入我们的数学函数中,它告诉javascript取score字段而不是整个对象。这里所有的工作:
ebdffaop3#
对于大写单词,可以混合使用三个函数:x一个一个一个一个一个一个一个一个一个一个一个和x一个一个一个一个二个一个。
charAt()
函数用于返回字符串中给定位置的字符。示例:toUpperCase()
函数用于将输入字符串中的所有字符转换为大写。示例:现在,所有的字符都大写了。但是,我们只需要首字母大写。要大写字符串的第一个字符,我们可以使用
charAt()
分隔第一个字符,然后使用toUpperCase()
函数将其大写。现在,我们将使用slice()
函数获得字符串的其余字符。slice()
函数用于从指定的“开始”位置到指定的“结束”位置对给定字符串进行切片。例如:所以,我们用这三个字母来大写首字母。