计算解析的整数差时获得 NaN

时间:2021-06-04 13:21:28

标签: javascript

我有一个程序可以计算文本文件中的行数,并且运行良好。我想要做的是计算 2 个不同文件中的行数并计算它们的差异,但我得到 TitleDetails 我将它们解析为整数为什么它不是数字?我如何计算它们的差异?提前致谢。

NaN

2 个答案:

答案 0 :(得分:1)

让我们仔细看看这条线

console.log("Calc :" + parseInt(split_lines2.length) - parseInt(split_lines.length))

因为我没有那些变量,让我们用一些演示数字替换它们:

console.log("Calc :" + 10 - 5);

这仍将返回 NaN,因为 "Calc :10" - 5 失败。

如果您将总和括在一些括号中,则在添加到字符串之前进行评估,因此它变为 "Calc :" + 5。由于 JS 会将 5 转换为字符串,因此会产生预期的输出:

console.log("Calc :" + (10 - 5));

所以你 console.log 应该看起来像:

console.log("Calc :" + (parseInt(split_lines2.length) - parseInt(split_lines.length)))

答案 1 :(得分:0)

因为你和"Calc :"一起做数学:

"Calc :" 加上 split_lines2.length,减去 split_lines.length - 这里没有连接。

将计算包裹在 () 中,因此您的 + 变成串联而不是加法

/* filePath = process.argv[2];
fileBuffer = fs.readFileSync('filePath');
to_string = fileBuffer.toString();
split_lines = to_string.split("\n");
filePath2 = process.argv[2];
fileBuffer2 = fs.readFileSync('filePath2');
to_string2 = fileBuffer2.toString();
split_lines2 = to_string2.split("\n"); */

var split_lines2 = [1, 2];
var split_lines = [1]

//logging NaN
console.log("Calc :" + (parseInt(split_lines2.length) - parseInt(split_lines.length)))

相关问题