Javascript d3.tsv查找最大值

Javascript d3.tsv查找最大值,javascript,d3.js,Javascript,D3.js,这就是我的tsv的外观,但行数更多,值变化更频繁(.tsv大小约为10MB) 如何读取此tsv的最大值 这是d3.tsv电话 d3.tsv(“WasserNeu.tsv”,importTSV); var importedData=[]//[日期][时间]。城市 函数importTSV(错误、数据){ 对于(数据中的var行){ var dataRow=data[row];//row只是当前对象的编号,data[row]表示其内容 if(导入数据[dataRow.cdate]==未定义){ 导入

这就是我的tsv的外观,但行数更多,值变化更频繁(.tsv大小约为10MB)

如何读取此tsv的最大值

这是d3.tsv电话

d3.tsv(“WasserNeu.tsv”,importTSV);
var importedData=[]//[日期][时间]。城市
函数importTSV(错误、数据){
对于(数据中的var行){
var dataRow=data[row];//row只是当前对象的编号,data[row]表示其内容
if(导入数据[dataRow.cdate]==未定义){
导入数据[dataRow.cdate]=[];
}
if(导入数据[dataRow.cdate][dataRow.ctime]==未定义){
导入数据[dataRow.cdate][dataRow.ctime]=[];
}
for(数据行中的var oneCity){
if(oneCity!=“cdate”&&oneCity!=“ctime”){
if(导入数据[dataRow.cdate][dataRow.ctime][oneCity]==未定义){
导入数据[dataRow.cdate][dataRow.ctime][oneCity]=[];
}
导入数据[dataRow.cdate][dataRow.ctime][oneCity]=dataRow[oneCity];
//log(“数据点(“+oneCity+”):+dataRow[oneCity]);
}   

}
由于您没有说得更具体,这将找到整个“网格”中最大单元格的值:

有关更多信息,请参阅


从您的
导入数据
结构中,应获得最大值:

d3.max(d3.values(importedData), function(times){
  return d3.max(d3.values(times), function(cities){
    return d3.max(d3.values(cities));
  });
});

由于您没有说得更具体,这将找到整个“网格”中最大单元格的值:

有关更多信息,请参阅


从您的
导入数据
结构中,应获得最大值:

d3.max(d3.values(importedData), function(times){
  return d3.max(d3.values(times), function(cities){
    return d3.max(d3.values(cities));
  });
});

为什么不在遍历数组时简单地存储它呢

我还添加了一行代码来检查数据是否实际表示为number(parseFloat)

d3.tsv("WasserNeu.tsv", importTSV);    

var importedData = [];  //[date][time].city

var valueCache;         //caching value 
var newMaxValue = 0;    //store the max value 
function importTSV(error, data) {
        for (var row in data) { 
            var dataRow = data[row]; //row is just the number of the current object, data[row] represents its contents
            if (importedData[dataRow.cdate] === undefined) {
                importedData[dataRow.cdate] = [];
            }
            if (importedData[dataRow.cdate][dataRow.ctime] === undefined) {
                importedData[dataRow.cdate][dataRow.ctime] = [];
            }
            for (var oneCity in dataRow) {
                if (oneCity != "cdate" && oneCity != "ctime") {

                    if (importedData[dataRow.cdate][dataRow.ctime][oneCity] === undefined) {
                        importedData[dataRow.cdate][dataRow.ctime][oneCity] = [];
                    }

                    valueCache = parseFloat(dataRow[oneCity]); //cache the value to reduce parse and array-access activity
                    if (valueCache > newMaxValue) {
                        newMaxValue = valueCache;
                    }

                    importedData[dataRow.cdate][dataRow.ctime][oneCity] = valueCache;
                }   
            } 

        }

    console.log("NewMax " + newMaxValue);

为什么不在遍历数组时简单地存储它呢

我还添加了一行代码来检查数据是否实际表示为number(parseFloat)

d3.tsv("WasserNeu.tsv", importTSV);    

var importedData = [];  //[date][time].city

var valueCache;         //caching value 
var newMaxValue = 0;    //store the max value 
function importTSV(error, data) {
        for (var row in data) { 
            var dataRow = data[row]; //row is just the number of the current object, data[row] represents its contents
            if (importedData[dataRow.cdate] === undefined) {
                importedData[dataRow.cdate] = [];
            }
            if (importedData[dataRow.cdate][dataRow.ctime] === undefined) {
                importedData[dataRow.cdate][dataRow.ctime] = [];
            }
            for (var oneCity in dataRow) {
                if (oneCity != "cdate" && oneCity != "ctime") {

                    if (importedData[dataRow.cdate][dataRow.ctime][oneCity] === undefined) {
                        importedData[dataRow.cdate][dataRow.ctime][oneCity] = [];
                    }

                    valueCache = parseFloat(dataRow[oneCity]); //cache the value to reduce parse and array-access activity
                    if (valueCache > newMaxValue) {
                        newMaxValue = valueCache;
                    }

                    importedData[dataRow.cdate][dataRow.ctime][oneCity] = valueCache;
                }   
            } 

        }

    console.log("NewMax " + newMaxValue);

我添加了我的d3.tsv呼叫..你需要哪些详细信息?我需要知道你想要的最大值!任何城市在任何时间的最大值?最大值出现的城市和时间?每次的最大值?每个城市的最大值?啊,好的:)我需要任何城市在任何时间的最大值这是一个表达式,所以你可能将结果分配给一个变量,然后在某个地方使用它。你是Javascript新手吗?是的,我是Javascript新手:DI添加了我的d3.tsv调用。你需要哪些详细信息?我需要知道你想要的最大值!任何城市在任何时间的最大值?最大值出现的城市和时间?每次的最大值?最大值每个城市的m值?啊,好的:)我需要任何城市在任何时候的最大值。这是一个表达式,所以你可能会将结果赋给一个变量,然后在某个地方使用它。你对Javascript不熟悉吗?是的,我对Javascript不熟悉:d