javascript - JSON 中的值未定义
问题描述
我目前正在用 JS 重写我的 Discord Bot,我想使用 i18n 使其成为多语言。但是使用以下代码:
if (message.content.toLowerCase() === `${PREFIX}uptime`) {
let days = Math.floor(client.uptime / 86400000);
let hours = Math.floor(client.uptime / 3600000) % 24;
let minutes = Math.floor(client.uptime / 60000) % 60;
let seconds = Math.floor(client.uptime / 1000) % 60;
return message.channel.send(`***__Beethoven:__***` + i18n.__mf("uptime.result"));
}
JSON文件中的那个
"uptime": {
"description": "Vérifiez le uptime du bot",
"result": "Uptime: `${days} jour(s),${hours} heures, ${minutes} minutes, ${seconds} secondes`"
},
输出未定义到 {} 中的所有项目,我看了一些类似的问题并找到了这个解决方案
var old = JSON.stringify(data).replace(/null/g, '"#"'); //convert to JSON string
var newArray = JSON.parse(old); //convert back to array
但是替换4个数据是不是有点粗略?这是我第一次使用 Stack,我不太喜欢提出问题,而是更喜欢自己解决问题,但我有点卡住了。提前感谢您的回复。
解决方案
您需要更换:
const fr = { "result": "Uptime: #dd# jour(s), #hh# heure(s), #mm# minute(s), #ss# seconde(s)" };
let uptime = fr.result;
let time = [12,30,45,12];
[...uptime.matchAll(/(#\w{2}#)/g)].forEach((match,i) => uptime = uptime.replace(match[1],time[i]));
console.log(uptime)
推荐阅读
- flutter - 如何将 controller.index 值保存到静态变量中?
- python - 嵌套 For 循环和 nltk.FreqDist - IndexError:列表索引超出范围
- python - 熊猫插值条件
- reactjs - 无法在 fetch api 中将输入文本插入到 url
- android - 某些设备上使用颤振和火焰动画的错误
- ios - 将 React Native 警报定位在屏幕底部
- python - Python中用于替换列表中元素的函数
- python - 我无法在这个 pygame 太空侵略者中开枪
- entity-framework - 无法使用 EF Core 6 添加迁移
- powerapps - Power Apps 导航功能