0

我有一个循环遍历 csv 数据的 if 语句。我用新行和逗号解析了 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

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

4

2 回答 2

1

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

消极的。

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

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

 if (row[0].length >= 6) {
    ....
于 2013-07-08T13:29:00.190 回答
0

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

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

于 2013-07-08T13:28:29.523 回答