【问题标题】:Trying to add ints from database to a let but always returning NaN尝试将数据库中的整数添加到 let 但总是返回 NaN
【发布时间】:2020-01-15 06:08:05
【问题描述】:

我一直在尝试从我的数据库 (MySQL/PHPMyAdmin) 中的表中获取一些数字并将它们添加到代码中的“let”中,但最终输出始终为 NaN。

我尝试使用 parseInt() 函数以防表中的数字被视为字符串但没有成功。

var pointsQuery = "SELECT * FROM reacts WHERE userid=" + message.author.id;
con.query(pointsQuery, function (err, rows, fiedls) {
if (err) {
  message.channel.send(err.message);
  throw err;
}
let upvotes = 0;
let downvotes = 0;
for (var i in rows) {
   upvotes = upvotes + parseInt(rows[i].upvotes, 10);
    downvotes = downvotes + parseInt(rows[i].downvotes, 10);
}
upvotes = upvotes - parseInt(rows, 10);
downvotes = downvotes - parseInt(rows, 10);

console.log("up: " + upvotes);
console.log("down:" + downvotes);

let finalPoints = 10 + parseInt((upvotes - (downvotes * 2)), 10);

message.channel.send("<@" + message.author.id + "> has " + finalPoints + " points!");

})

我用于“调试”的两个 console.log 的输出应该是一个数字,但输出的是“NaN”。 final points 应该是表达式 10 + (upvotes - (downvotes * 2)) 的结果

【问题讨论】:

  • 如果 rows 是一个数组,那么这将导致您的问题:upvotes = upvotes - parseInt(rows, 10); 不确定那或下一行是什么意思
  • 你可以试试 parseInt(rows[i]);不要在里面写10
  • @Pete @Deepak Jha,rows 是一个数组,但在 for 循环中使用时,它似乎像 int 一样工作,用于告诉代码它必须执行多少次循环。我假设如果我解析rows,它会在此处执行与for 循环相同的操作。我试图在没有基数 (10) 的情况下解析 rows,但它仍然输出 NaN。
  • 在第 13、14 行,upvotes = upvotes - parseInt(rows, 10);downvotes = downvotes - parseInt(rows, 10); 应该做什么?你不能解析和数组到一个数字。像循环一样添加索引,也许你的意思是array.Last()
  • 如果你想减去总行数,你需要根据你的框架使用array.Lengtharray.Count指定你想要的长度。此外,您确实应该创建一个变量 let len = parseInt(rows.Length, 10); 来减去,因为您使用相同的值执行两次,并且您不应该浪费资源

标签: javascript mysql discord.js


【解决方案1】:

在第 13 行和第 14 行中,您尝试将其解析并排列成一个 Int 是不可能的。如果您想减去总行数,您需要根据您的框架使用array.Lengtharray.Count 指定您想要的长度。此外,您确实应该创建一个变量 let len = parseInt(rows.Length, 10); 来减去,因为您使用相同的值执行了两次,并且您不应该浪费资源 (来自 cmets 的转贴答案)

代码:

let len = parseInt(rows.Length, 10);
upvotes = upvotes - len;
downvotes = downvotes - len;

【讨论】:

    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 2020-10-24
    • 2022-01-12
    • 2018-10-02
    相关资源
    最近更新 更多