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

JavaScript如何读写外部文件为变量/array赋值实现高分持久存储

JavaScript 本地持久化存储高分实现方案

纯JavaScript完全可以实现高分数据持久化,不需要编写HTML或CSS代码,根据你的游戏运行环境选对应方案即可。

Node.js 运行环境(命令行/本地桌面脚本场景)

如果你的游戏是直接通过Node.js跑的纯JS脚本,用Node内置的文件系统模块就能直接读写本地文本文件,不需要安装任何第三方依赖:

  • 游戏启动阶段读取本地高分文件,解析为数组赋值给变量
    // 引入Node内置文件操作模块
    const fs = require('fs');
    // 定义高分文件存储路径
    const SCORE_STORE_PATH = './top5_scores.txt';
    let highScoreList = [];
    
    // 初始化读取分数
    try {
      const fileRaw = fs.readFileSync(SCORE_STORE_PATH, 'utf-8');
      highScoreList = JSON.parse(fileRaw);
    } catch (e) {
      // 首次运行文件不存在时,初始化为空数组
      highScoreList = [];
    }
    
  • 游戏结束触发高分榜更新时,把最新数组同步写入文件
    function saveNewScore(newScore) {
      // 新分数入榜、降序排序、截取前5名
      highScoreList.push(newScore);
      highScoreList.sort((scoreA, scoreB) => scoreB - scoreA);
      highScoreList = highScoreList.slice(0, 5);
    
      // 写回本地文件
      fs.writeFileSync(SCORE_STORE_PATH, JSON.stringify(highScoreList), 'utf-8');
    }
    

如果需要存成电子表格可直接打开的格式,只要把存储路径后缀改成.csv,写入时把数组转成逗号/换行分隔的文本即可,读取时按分隔符拆分回数字数组就行。

浏览器运行环境(网页端打开游戏场景)

浏览器出于安全限制,不允许JS直接操作本地硬盘的任意文件,不需要写HTML/CSS的前提下,可以用浏览器原生的LocalStorage做持久化,刷新、重启浏览器数据都不会丢失:

let highScoreList = [];
// 初始化读取存储的分数
const savedData = localStorage.getItem('asteroids_high_scores');
if (savedData) {
  highScoreList = JSON.parse(savedData);
}

function saveNewScore(newScore) {
  highScoreList.push(newScore);
  highScoreList.sort((scoreA, scoreB) => scoreB - scoreA);
  highScoreList = highScoreList.slice(0, 5);
  // 写回浏览器本地存储
  localStorage.setItem('asteroids_high_scores', JSON.stringify(highScoreList));
}

如果需要导出成独立的txt/csv文件,仅用JS也能实现,不需要写CSS,核心是调用浏览器的Blob生成文件的API,全程逻辑都在JS层完成。

注意:LocalStorage存储的数据是和浏览器域名绑定的,清理浏览器缓存会导致数据丢失,如果需要长期离线可备份的分数存储,优先选Node.js读写本地文件的方案。

内容的提问来源于stack exchange,提问作者Chris Jonson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:42:17