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

如何修改JS代码使变量balls保留最后值而非每次重置为10

问题原因

你原代码每次运行都会显式将balls初始化为10,同时JS脚本运行在内存中,脚本执行结束后内存变量会被销毁,不做持久化存储的话自然无法保留上次更新的数值。根据你运行代码的环境不同,对应修改方案如下:

浏览器环境方案

借助浏览器提供的localStorage本地存储能力实现持久化,修改后代码:

// 优先读取本地存储的历史值,不存在则初始化为10
let balls = localStorage.getItem('balls') ? Number(localStorage.getItem('balls')) : 10;
let randomB = Math.floor(Math.random() * 10) + 1;
if (randomB % 2 == 0) {
  balls++;
} else {
  balls -= 2;
}
// 将更新后的值写入本地存储
localStorage.setItem('balls', balls);
console.log(balls);
  • 如需重置为初始值10,手动执行localStorage.removeItem('balls')删除存储记录即可。

Node.js环境方案

通过读写本地文件实现数值持久化,修改后代码:

const fs = require('fs');
// 自定义存储文件的路径
const STORAGE_FILE = './balls_data.json';

let balls = 10;
// 读取已有存储的历史值
if (fs.existsSync(STORAGE_FILE)) {
  const savedData = JSON.parse(fs.readFileSync(STORAGE_FILE, 'utf-8'));
  balls = savedData.balls;
}

let randomB = Math.floor(Math.random() * 10) + 1;
if (randomB % 2 == 0) {
  balls++;
} else {
  balls -= 2;
}

// 将更新后的值写入存储文件
fs.writeFileSync(STORAGE_FILE, JSON.stringify({ balls }));
console.log(balls);
  • 脚本运行后会在当前目录生成balls_data.json文件存储最新值,删除该文件即可重置初始值。

内容的提问来源于stack exchange,提问作者Mihai Pascu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:27:01