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