JavaScript统计表的实现流程

1. 准备工作

在开始编写JavaScript统计表之前,首先需要准备好HTML和CSS部分的代码,用于展示表格和样式。

HTML代码

<!DOCTYPE html>
<html>
<head>
    <title>JavaScript统计表</title>
    <link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
    <div id="table-container">
        <table id="data-table"></table>
    </div>

    <script src="script.js"></script>
</body>
</html>

CSS代码

table {
    border-collapse: collapse;
}

th, td {
    border: 1px solid black;
    padding: 8px;
}

#table-container {
    width: 600px;
    margin: 0 auto;
}

这段HTML代码定义了一个包含表格的div容器,并引入了一个外部的CSS文件用于样式定义。CSS部分的代码则设置了表格的边框样式和容器的宽度。

2. JavaScript代码编写

在准备好HTML和CSS之后,就可以开始编写JavaScript代码来实现统计表了。

步骤1:获取要统计的数据

首先,你需要获取要统计的数据。这可以是来自数据库、服务器接口或用户输入的数据。在这个例子中,我们假设数据已经存在,并存储在一个数组中。

var data = [
    { name: 'John', age: 25, score: 80 },
    { name: 'Jane', age: 30, score: 90 },
    { name: 'Tom', age: 28, score: 75 },
    // ... 添加更多数据
];

这个数组中的每个对象代表一个数据行,包含了姓名、年龄和分数等属性。

步骤2:创建表头

在表格中,首先需要有一个表头来显示各列的标题。可以使用JavaScript动态创建表格的表头。

var table = document.getElementById('data-table');
var thead = table.createTHead();
var row = thead.insertRow();

var headers = ['姓名', '年龄', '分数'];

for (var i = 0; i < headers.length; i++) {
    var th = document.createElement('th');
    th.innerHTML = headers[i];
    row.appendChild(th);
}

这段代码首先获取到表格的DOM元素,然后创建表头的thead,再插入一个空行。接下来,通过循环创建表头中的每个单元格,并设置其innerHTML为对应的标题。

步骤3:填充表格数据

完成表头的创建之后,接下来需要填充表格的数据。可以使用JavaScript动态创建表格的数据行。

var tbody = document.createElement('tbody');

for (var i = 0; i < data.length; i++) {
    var row = tbody.insertRow();

    var nameCell = row.insertCell();
    nameCell.innerHTML = data[i].name;

    var ageCell = row.insertCell();
    ageCell.innerHTML = data[i].age;

    var scoreCell = row.insertCell();
    scoreCell.innerHTML = data[i].score;
}

table.appendChild(tbody);

这段代码首先创建一个tbody元素用于存放表格的数据行。然后通过循环遍历数据数组,为每个数据行创建一个新的表格行。在每个表格行中,插入对应的单元格并设置其innerHTML为数据属性的值。

最后,将tbody添加到表格中。

步骤4:计算统计结果

完成表格数据的填充之后,接下来需要计算统计结果。可以使用JavaScript计算各列的总和、平均值等统计数据。

var sum = 0;
var max = -Infinity;
var min = Infinity;

for (var i = 0; i < data.length; i++) {
    sum += data[i].score;

    if (data[i].score > max) {
        max = data[i].score;
    }

    if (data[i].score < min) {
        min = data[i].score;
    }
}

var average = sum / data.length;

console.log('总分:' + sum);
console.log('平均分:' + average);
console.log('最高分:' + max);
console.log('最低分:' + min);

这段代码通过循环遍历数据数组,累加分数求和,并记录最高分和最