我有以上数据,
var jsonData = [
{date:'August 19, 2004',open:100.01,high:104.06,low:95.96,close:100.34,volume:22088000},
{date:'August 20, 2004',open:101.48,high:109.08,low:100.50,close:108.31,volume:11377000},
{date:'August 23, 2004',open:110.76,high:113.48,low:109.05,close:109.40,volume:9090700},
{date:'August 24, 2004',open:111.24,high:111.60,low:103.57,close:104.87,volume:7599100},
{date:'August 25, 2004',open:104.96,high:108.00,low:103.88,close:106.00,volume:4565900}
];
我想得到日期的所有sigle值,我已经使用了这个
for(var i = 0; i<jsonData.length; i++)
var date = jsonData[i].date;
date = date.split(' ');
return date;
但我只获得了2004年8月25日的最后价值
我如何获得所有值?
答案 0 :(得分:0)
在循环中,您将所有日期放在同一个变量中,因此在每次迭代中您都会覆盖之前的值。将日期添加到数组中:
var dates = [];
for(var i = 0; i<jsonData.length; i++) {
dates.push(jsonData[i].date);
}
return dates;
返回日期字符串数组。如果要拆分每个日期并返回一个字符串数组数组:
var dates = [];
for(var i = 0; i<jsonData.length; i++) {
dates.push(jsonData[i].date.split(' '));
}
return dates;
答案 1 :(得分:0)
你的循环有问题。它只运行一次,即使你删除它,也会覆盖 date
如果要存储所有日期,则需要将其设置为数组并存储日期。我不确定single values of dates
你的意思,但这个结构会为你解决问题。
var dates = [];
for(var i = 0; i<jsonData.length; i++) {
var date = jsonData[i].date;
date = date.split(' ');
//do whatever you want with your date. transform.
dates.push(date); //push the final version of the date you want to store
}
return dates; //return an array of dates
答案 2 :(得分:0)
您在循环的每次迭代中覆盖date
变量。相反,保留一个变量(在循环外部初始化)并将每个日期数组(在循环内生成)推送到它。
dates = [];
for ( idx in jsonData ) {
dates.push(jsonData[idx].split(' '));
}
// dates is an array of arrays now
// for example: [['August', '19,', '2004'], ...]
return dates;
答案 3 :(得分:0)
在这里你定义一个循环,所以数组的每个值都在日期变量中覆盖,所以它给出了最后覆盖的值
提取您不使用的所有值循环此类型您定义
你只需写
var date1 = jsonData [0] .date; var date2 = jsonData [1] .date;