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

Node.js+Discord.js抽奖系统:向嵌套数组推送数据报错求助

解决Discord.js抽奖系统entries字段push报错的问题

嘿,这个问题我之前也碰到过!你猜得没错,问题就出在entries的类型上——它现在是字符串("[]"),不是真正的JavaScript数组,自然调用不了push方法啦。

具体解决步骤:

  • 先把字符串解析成数组:用JSON.parse()把存储的字符串格式数组转成可操作的JS数组
  • 执行push操作添加参与项:这时候数组就可以正常用push了
  • 把数组转回字符串保存:如果之后需要把数据存回文件/数据库,得用JSON.stringify()把数组转成字符串格式,保持数据结构一致

完整代码示例:

// 解析字符串为数组
let entries = JSON.parse(raffles[0].entries);

// 添加新的参与用户信息
entries.push({ 'username': 'example', 'user_id': '1' });

// 把更新后的数组转回字符串,替换原字段
raffles[0].entries = JSON.stringify(entries);

额外优化建议:

如果可以的话,建议你初始化数据集的时候,直接把entries设为原生数组[],而不是字符串"[]",这样后续操作就不用反复解析和转换了,比如初始数据集改成:

[{"author":"Name","rafflename":"RAFFLE","amount":"10","entries":[]}]

这样之后直接调用raffles[0].entries.push(...)就不会报错啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:59:00