You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript处理weather.dat文件找出气温温差最小的日期

解决方法

关于.dat文件的常见疑问

.dat只是自定义的纯文本后缀,本质和.txt没有区别,不需要手动把数据抄进数组,直接通过脚本读取文件内容按规则解析即可。

Node.js环境实现代码(本地运行场景)

如果是在本地用Node.js运行脚本,直接调用内置的fs文件模块读取即可,示例代码如下:

const fs = require('fs');
const path = require('path');

// 填写你的weather.dat文件本地路径
const FILE_PATH = path.resolve(__dirname, './weather.dat');

fs.readFile(FILE_PATH, 'utf8', (err, data) => {
  if (err) {
    console.error('文件读取失败:', err);
    return;
  }
  // 按行拆分文件内容,过滤空行
  const lines = data.split('\n').filter(line => line.trim() !== '');
  let minDiff = Infinity;
  let targetDate = null;

  // 跳过第一行表头,从第二行开始遍历数据
  for (let i = 1; i < lines.length; i++) {
    // 按空白字符拆分每一列,自动适配多空格、制表符分隔的格式
    const columns = lines[i].trim().split(/\s+/);
    const date = parseInt(columns[0]);
    const maxTemp = parseInt(columns[1]);
    const minTemp = parseInt(columns[2]);
    const diff = maxTemp - minTemp;

    if (diff < minDiff) {
      minDiff = diff;
      targetDate = date;
    }
  }

  console.log(`温差最小的日期是当月第${targetDate}日,最小温差为${minDiff}度`);
});

运行步骤

  • 把上述代码保存为getMinDiffDay.js,和weather.dat放在同一个文件夹
  • 打开终端进入该文件夹,执行命令node getMinDiffDay.js即可看到结果

浏览器端上传读取场景

如果是在前端页面让用户上传weather.dat文件解析,代码如下:

<input type="file" id="fileInput" accept=".dat">
<script>
document.getElementById('fileInput').addEventListener('change', e => {
  const file = e.target.files[0];
  const reader = new FileReader();
  reader.onload = event => {
    const data = event.target.result;
    // 后续解析逻辑和Node.js版本完全一致
    const lines = data.split('\n').filter(line => line.trim() !== '');
    let minDiff = Infinity;
    let targetDate = null;
    for (let i = 1; i < lines.length; i++) {
      const columns = lines[i].trim().split(/\s+/);
      const date = parseInt(columns[0]);
      const maxTemp = parseInt(columns[1]);
      const minTemp = parseInt(columns[2]);
      const diff = maxTemp - minTemp;
      if (diff < minDiff) {
        minDiff = diff;
        targetDate = date;
      }
    }
    alert(`温差最小的日期是当月第${targetDate}日`);
  };
  reader.readAsText(file);
});
</script>

内容的提问来源于stack exchange,提问作者Debby Hikari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:45:00