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 のコンソール ログが 1 つある

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

したがって、私の質問は、配列の最初の要素の長さが 6 より大きいかどうかをチェックしている if ステートメントにあります。また、最後の配列を埋めるためのelseステートメントもありました。しかし、データの最後に空行を 1 行追加し続けているようです。

4

2 に答える 2

1

したがって、私の質問は、配列の最初の要素の長さがそれよりも大きいかどうかを確認する if ステートメントにあります。

ネガティブ。

配列に 6 つを超える要素があるかどうか、または 6 つのカンマ区切りの項目があるかどうかを確認しています。

最初の要素の長さを確認するには、次のことを行う必要があります。

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

[…] if ステートメントで、配列の最初の要素の長さが [n] 6 よりも大きいかどうかを確認しています

いいえ、それはあなたがしていることではありません。–row.lengthの要素の数を返します。これは、生の文字列をコンマで分割して得た配列です。最初の要素の長さを確認したい場合は、代わりに確認する必要があります。rowrowrow[0].length

于 2013-07-08T13:28:29.523 に答える