如果我理解正确,对于每个i
:
result[i]['date']
给出位置的日期i
result[i]['price']
给出位置的价格i
现在首先,让我们看一下您的循环:
for (var i = 0; i < result.length; i++) {
//Here you grab the date from the result array
tempDate = Date.parse(result[i]['date']);
//Here you grab the price from the result array and parse it to a float
tempArray = [parseFloat(result[i]['price'])];
//Here you grab the current date (of today)
var date = new Date();
//Here you overwrite the 'grabbed date' with the current date (of today)
tempDate = date.toString();
//Here you add the price at position i to the 'result array' called series
series.push(tempArray);
//Here you join tempArray with the tempDate
var tempDate = tempDate.concat(tempArray);
}
那么究竟出了什么问题呢?
好吧,我为你准备了一个 JsFiddle:http: //jsfiddle.net/KzLFr/1/
仔细查看代码以及警报框中“显示”的内容。您会看到 tempDate 的值被当前日期覆盖。将此信息应用于您的循环:您将看到对于每次迭代,您都会result
用当前日期覆盖从数组中获取的日期。
这意味着“实际”日期(从result[i]['date']
)总是被覆盖,因此,如果您在每次迭代时将所有 tempDates 添加到一个数组中,您最终将得到一个由result.length
当前日期时间组成的数组。
另一个有趣的点是您的陈述:var tempDate = tempDate.concat(tempArray);
正如您在 JsFiddle 的第二个警报框中看到的那样,这将创建一个数组,其中有两个数组。但是为什么你会在每次迭代中都这样做呢?
此外,你永远不会对你的约会做任何事情。您不会将它们添加到数组或任何东西中:您只需创建它们,然后不理会它们。
这就引出了一个问题:你到底想做什么?
所以:
注意:可能是我弄错了,但如果我是对的,您希望得到一个包含x-axis
信息和y-axis
信息的数组。因为从你的问题和你的代码中不清楚你想如何完成这个,我只能猜测。
因此,通过猜测你想要结束什么,我会重写你的循环如下:
var dateData = [];
var priceData = [];
for( var i = 0; i < result.length; i++ ){
dateData.push( result[i][0] );
priceData.push( result[i][1] );
}
你可以在这里看到它是如何工作的:http: //jsfiddle.net/WT58s/1/
如果这不能解决您的问题,请解释您想要最终得到的结果(二维数组还是两个不同的数组?),以便我们更好地为您提供帮助。
此外,通常当您从 Internet 下载信息时,信息会向后存储;所以从当前日期开始,然后及时倒退。
尝试看看您的数据是否也是如此。如果确实如此,您可以在此处阅读有关反转的信息:
二维数组中元素的逆序