I have a program that counts the number of lines in a text file and it works fine. What I am trying to do is count the number of lines in 2 different files and calculate their difference but I’m getting NaN
I parsed them to integers why is it not a number? How can I calculate their difference? Thanks in advance.
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"); //logging NaN console.log("Calc :" + parseInt(split_lines2.length) - parseInt(split_lines.length))
Advertisement
Answer
Lets take a close look at this line
console.log("Calc :" + parseInt(split_lines2.length) - parseInt(split_lines.length))
Since I don’t have those var’s, lets replace them with some demo numbers:
console.log("Calc :" + 10 - 5);
This will still return NaN
because "Calc :10" - 5
fails.
If you enclose the sum in some brackets, there evaluated before adding to the string so it becomes "Calc :" + 5
. Since JS will convert the 5
to a string, it producing the expected output:
console.log("Calc :" + (10 - 5));
So you’re console.log
should look something like:
console.log("Calc :" + (parseInt(split_lines2.length) - parseInt(split_lines.length)))