Jquery 将对象保存在变量中并对其进行解析

Jquery 将对象保存在变量中并对其进行解析,jquery,Jquery,我有一个目标: var eventsDates = new Array( "basket":"11-10-2012", "soccer":"21-10-2012", "soccer":"28-10-2012", "baseball":"25-11-2012", "baseball":"15-12-2012" ); 我需要通过比赛来提取日期,比如足球,而不是像这样保存结果 var eventsDates = new Array( "21

我有一个目标:

  var eventsDates = new Array(
    "basket":"11-10-2012",
    "soccer":"21-10-2012",
    "soccer":"28-10-2012",
    "baseball":"25-11-2012",
    "baseball":"15-12-2012"
  );
我需要通过比赛来提取日期,比如足球,而不是像这样保存结果

  var eventsDates = new Array(
    "21-10-2012",
    "28-10-2012"
  );
有什么建议吗


卢卡

< P>我会考虑一种不同的数据结构:

var eventDates = {
    Soccer: [{
         date: ...
    ]},
    Basket: [{
         date: ...
    ]}
};
然后,您可以轻松访问f.e.所有足球日期:

for (var i = 0; i <= eventDates.Soccer.length; i++) {
    // Do something with eventDates.Soccer[i]
}

for(var i=0;i看起来您建议在一个数组中有一系列对象:

var events = [
    {"basket":"11-10-2012"},
    {"soccer":"21-10-2012"},
    {"soccer":"28-10-2012"},
    {"baseball":"25-11-2012"},
    {"baseball":"15-12-2012"}
];

var count = events.length, dates = [], m;

while (count--)
    if (m = events[count]["soccer"])
        dates.push(m);

console.log(dates);

小提琴:

不要混合使用
数组
对象
使用其中一种:

var eventDates = [
   "11-10-2012",
   "21-10-2012",
   "28-10-2012",
   "25-11-2012",
   "15-12-2012"
];

也就是说,您不能重复使用同一个密钥(如
棒球
),因此最佳结构应为以下结构之一:

var eventDates = {
  "basket": ["11-10-2012"],
  "soccer": ["21-10-2012", "28-10-2012"]
  "baseball": ["25-11-2012", "15-12-2012"]
};
和访问,如
eventDates.batball

$.each(eventDates.baseball, function (k, v) {
  alert(v);
});
您也可以执行以下操作,但随后必须使用自定义提取器,该提取器将涉及在任何时候只需要某个
名称的日期对整个数组进行迭代

var eventDates = [
  {"name": "basket", "date":"11-10-2012"},
  {"name":"soccer", "date":"21-10-2012"},
  {"name": "soccer", "date":"28-10-2012",
  {"name": "baseball", "date":"25-11-2012"},
  {"name":"baseball", "date":"15-12-2012"}
];

这不是一个对象,这是一个语法错误的数组。第一个对象的语法不正确,即使是
{}
object notation,您有重复的键。语法应该如何首先确定您是要使用一个对象还是一个对象数组。然后展示您尝试过的内容。它不应该仅仅是一个简单的循环。如果遇到问题,请返回。太好了!这是让数组在同一块引号中放置更多日期的另一种方法吗?@roybatty I d我不明白你在问什么。
$.each(eventDates.baseball, function (k, v) {
  alert(v);
});
var eventDates = [
  {"name": "basket", "date":"11-10-2012"},
  {"name":"soccer", "date":"21-10-2012"},
  {"name": "soccer", "date":"28-10-2012",
  {"name": "baseball", "date":"25-11-2012"},
  {"name":"baseball", "date":"15-12-2012"}
];