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

从指定数组随机推送字符至另一数组功能异常求助

问题修复方案

核心问题分析

  1. 循环条件完全错误:for(var c = 0; c > 30; c++) 里初始值c=0,0>30不成立,循环根本没执行,自然不会生成任何随机字符。
  2. 索引越界风险:Math.round(Math.random() * legalCharactersForSaveCode.length) 可能得到等于数组长度的数值,导致取到undefined——数组合法索引范围是0到length-1。
  3. 变量未声明:v没加var/let/const声明,会变成全局变量,存在意外覆盖的隐患。

修复后的代码

var legalCharactersForSaveCode = ["B","C","D","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z", "+", "/"];
var saveCode = [];

function generateSaveCode() {
  // 重置数组,避免多次调用时累加旧数据
  saveCode = [];
  for(var c = 0; c < 30; c++){
    // 用Math.floor确保索引始终在合法范围内
    var v = Math.floor(Math.random() * legalCharactersForSaveCode.length);
    saveCode.push(legalCharactersForSaveCode[v]);
  }
  saveCode.push(store.get("money"));
  alert(saveCode);
}

额外优化说明

  • 移除了数组末尾多余的逗号,避免旧版JS环境解析报错。
  • 每次调用函数时重置saveCode,防止多次调用后数组保留之前的生成结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:10:56