Javascript If语句检查

Javascript If语句检查,javascript,if-statement,Javascript,If Statement,我有一个if语句,它循环遍历csv数据。我用新行和逗号解析了51行,为每行提供了单独的数组。我的问题是我的if语句似乎不起作用,老实说,我不明白为什么。Raw是csv文件 这里更新了我如何分割csv文件 console.log("Loaded: " + data.length); console.log("feature layer graphics: " + fl.graphics.length); console.log(data);

我有一个if语句,它循环遍历csv数据。我用新行和逗号解析了51行,为每行提供了单独的数组。我的问题是我的if语句似乎不起作用,老实说,我不明白为什么。Raw是csv文件

这里更新了我如何分割csv文件

        console.log("Loaded: " + data.length);
        console.log("feature layer graphics: " + fl.graphics.length);
        console.log(data);

        var raw = data.split("\n");                                                       
        var valMin = Infinity;
        var valMax = -Infinity;
        var arrayForBreaks = [];
控制台日志返回51 false 然后有一个控制台日志为true

for (var i = 0; i < raw.length; i++) {
    var row = raw[i].split(",");
    var name = " ";
    var amount = " ";

    if (row.length >= 6) {
        name = row[0];
        amount = row[1];
    }

    console.log(isNaN(row[1]));

    stateData[name] = row;
    valMin = Math.min(valMin, row[1]);
    valMax = Math.max(valMax, row[1]);
    arrayForBreaks.push(parseFloat(amount));

}; //end for loop
for(变量i=0;i=6){
名称=行[0];
金额=第[1]行;
}
log(isNaN(第[1]行));
stateData[名称]=行;
valMin=Math.min(valMin,第[1]行);
valMax=Math.max(valMax,第[1]行);
arrayForBreaks.push(parseFloat(amount));
}; //循环结束
所以我的问题是在if语句中,我正在检查数组中第一个元素的长度是否大于6,如果它是dump,那么这些变量中的名称和数量。我还有一个else语句来填充最后一个数组。但它似乎一直在数据末尾添加一个空行

[…]在if语句中,我正在检查数组中第一个元素的长度是否大于[n]6

不,那不是你正在做的
row.length
将返回
row
的元素数,
row
是通过逗号分割原始字符串得到的数组。如果要检查第一个元素的长度,应改为检查
行[0]。长度

所以我的问题是在if语句中,我检查数组中第一个元素的长度是否大于

没有

您正在检查数组中的元素是否超过6个,或者是否有6个逗号分隔的项

要检查第一个元素的长度,您需要:

 if (row[0].length >= 6) {
    ....

想想这个(有效的!)csv行:
“ABC,XYZ”,1,,“25,50”
-这个字符串中有多少个字段?根据您的代码,5-但实际上只有3个。您确定在分割操作之后,行变量的长度大于6吗?我想你甚至应该在你的问题中公布行的值,为了更好地理解,你可能还想检查一行是否为空并跳过它-很可能在原始输入文件的末尾有
\n
。正如@AleksG所说,我会检查空行。我打赌你的文件末尾有一个空行。你希望它在控制台上登录什么?如果
行[1]
可以转换为数字,
isNaN()
按预期返回
false
。最后一个
true
可能来自CSV文件中的空最后一行,因为
isNaN(“”)
返回
true
。另外,最后一行实际上也包含一个
EOF
标记,尽管它不应该首先读取到
raw
。我只是把它放在那里,看看你在说什么,但它仍然有52行,最后一行是空的。那么你可能应该首先检查空行,然后跳过这些?