我有一个循环通过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语句来填写最后一个数组。但它似乎在数据的末尾添加一个空行。
答案 0 :(得分:1)
所以我的问题是在if语句中我正在检查数组中第一个元素的长度是否大于
否定。
您正在检查数组中是否有超过6个元素,或6个逗号分隔的项目。
要检查您需要的第一个元素的长度:
if (row[0].length >= 6) {
....
答案 1 :(得分:0)
[...]在if语句中我正在检查数组中第一个元素的长度是否大于[n] 6
不,那不是你在做什么。 row.length
将返回row
元素的数量 - 而row
是通过逗号分割原始字符串得到的数组。如果要检查第一个元素的长度,则应该检查row[0].length
。