如何提取数组的元素

时间:2011-04-11 04:54:01

标签: javascript

我有以上数据,

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日的最后价值

我如何获得所有值?

4 个答案:

答案 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;

相关问题