Javascript。比较输出错误

时间:2018-07-03 22:22:11

标签: javascript syntax-error comparison

fs.readFile('./input.txt', (error, data) => {
if(error)
    console.log(error);
const input = data.toString();
const dataArray = input.split(/[\n\r ]+/);
const lastItem = dataArray.length;
let accumulator = 0;
let counter = 0;
for(let i=0; i<lastItem-1; i++) {
    let tempArray = dataArray[i];
    let splitArray = tempArray.split('x');
    let a = splitArray[0];//length
    let b = splitArray[1];//width
    let c = splitArray[2];//height
    let d = a<b? (b<c?c:b) : (a<c?c:a);
    let output = 0;
    if(d === a)
        output = (2*b + 2*c + a*b*c);
    else if(d === b)
        output = (2*a + 2*c + a*b*c);
    else
        output = (2*b + 2*a + a*b*c);   
    accumulator += output;
}})

输入: 3x11x24 13x5x19 1x9x27

这是我的代码和输入。而且我想知道为什么我在进行错误的比较时无法获得“ d”数。我希望d在输入的每3个数字中最大。  而对我来说真正奇怪的是当我想要console.log(a

1 个答案:

答案 0 :(得分:1)

在您的代码中,a,b,c是字符串。您正在分割一个字符串,结果得到一个字符串。您需要转换为数字。

let a = +splitArray[0];//length
let b = +splitArray[1];//width
let c = +splitArray[2];

将字符串转换为数字,您的比较将起作用