我将解释我的问题的主要目标。
我需要使用此特定的数据结构构建一个变量:
日期,值(换行符)
2019-05-14 12:00:00,7.8
2019-05-15 00:00:00,14.5
2019-05-17 05:00:00,1
2019-05-19 20:00:00,2.3
2019-05-28 08:00:00,33.4
2019-05-28 10:00:00,18.8
2019-05-28 12:00:00,11.5
这样做的目的是将具有此确切结构的此变量传递给HighCharts作为数据输入以创建图表。
为了检索和生成此数据,我进行了一个foor循环,该循环读取了一个嵌套的JSON数组,称为“ datos”(其中包含具有这些值的数组)。
在代码下面,您可以看到“ fecha”(日期)和“ valor ”(值)变量的值。
for (var i = 0; i < datos.length; i++) {
var v = findPropPath(datos[i], 'v' );
var object = datos[i],
path = v,
getValue = (o, p) => p.split('.').reduce((r, k) => r[k], o);
var fecha = datos[i].data.time.s; // fecha = "2019-05-14 12:00:00"
var valor = getValue(object, path); // valor = "3.2"
var comma = ",";
var enter = "\n\r";
var datosF = fecha.concat(comma, valor, enter);
console.log(datosF);
};
如您所见,我试图将所有内容连接到一个名为datosF的新变量中。
现在,我停留在这一点上,因为我不知道如何将每一行连接到一个新变量中,该变量将包含内部的所有行,如上面的输出示例所示。
目前,console.log(datosF)提供以下内容:
我什至不确定我的解决方案是否有效,我还算是新手,也找不到合适的解决方案。
希望有人可以帮助我。
有很多写这个的方法。经过最少的修改,
var datosF = ''
for (var i = 0; i < datos.length; i++) {
var v = findPropPath(datos[i], 'v' );
var object = datos[i],
path = v,
getValue = (o, p) => p.split('.').reduce((r, k) => r[k], o);
var fecha = datos[i].data.time.s; // fecha = "2019-05-14 12:00:00"
var valor = getValue(object, path); // valor = "3.2"
var comma = ",";
var enter = "\n\r";
datosF = datosF.concat(fetcha, comma, valor, enter);
};
console.log(datosF);
您必须将每次迭代的结果保存到外部作用域的变量中。
不过,这里有一些不良做法。例如在循环的每次迭代中创建一个函数。发布原始数据将导致最简洁的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句