如果声明检查

时间:2013-07-08 13:24:18

标签: javascript if-statement

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

更新了heres我如何拆分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 然后有一个真实的控制台日志

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

所以我的问题是在if语句中我正在检查数组中第一个元素的长度是否大于6,如果它是转储那些变量中的名称和数量。我还有一个else语句来填写最后一个数组。但它似乎在数据的末尾添加一个空行。

2 个答案:

答案 0 :(得分:1)

  

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

否定。

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

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

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

答案 1 :(得分:0)

  

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

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