#javascript #string
#javascript #строка
Вопрос:
Когда я редактирую переменную внутри инструкции https.get() и регистрирую ее, она работает так, как должна. Когда я пытаюсь зарегистрировать ее снаружи, это похоже на то, что она вообще никогда не редактировалась. Есть ли способ предотвратить это?
const https = require('https');
//The data object is a JSON file that is gotten from an api. It has a GuildMembers array which contains an expHistory object, which requires a ton of formatting to get the numbers from the object.
data = JSON.parse(data)
let guildMembers = data.guild.members
let output = ''
for (let i=0; i<guildMembers.length; i ) {
let weeklyXP = JSON.stringify(guildMembers[i].expHistory)
//this part removes some unnecessary characters from the expHistory
for (let x=1;x<=14;x ) {
weeklyXP = weeklyXP.replace('"', '')
}
let weeklyXPArray = weeklyXP.split(',')
let XPArray = [weeklyXPArray[0].split(':')[1], weeklyXPArray[1].split(':')[1], weeklyXPArray[2].split(':')[1], weeklyXPArray[3].split(':')[1], weeklyXPArray[4].split(':')[1], weeklyXPArray[5].split(':')[1], weeklyXPArray[6].split(':')[1].replace('}', '')]
//After the formatting above, this part adds all the expHistory, turns it into a number and adds it to 'total'.
let total = 0
for (let y=0; y<XPArray.length;y ) {
total = parseFloat(XPArray[y], 10)
}
//this is the https.get() to another api, it is run to get each user in the guildMember array's username using an api.
https.get(`https://api.mojang.com/user/profiles/${guildMembers[i].uuid}/names`, (resp) => {
let mojangData = ''
resp.on('data', (chunk) => {
mojangData = chunk
})
resp.on('end', () => {
mojangData = JSON.parse(mojangData)
let playerUsername = mojangData[mojangData.length - 1]
//The 'format' variable is a string that is used to add all the information to 'output'
const format = `n${playerUsername.name} with ${total} GEXP`
output = format
})
while (output !== '') {
console.log('x') //returns infinite 'x's
}
})
while (output !== '') {
console.log('y') //returns no y's
}
}
//this is where I am trying to send 'output'
Ответ №1:
Я думаю, вы забыли экранировать двойную кавычку. Попробуйте использовать "
вместо "