输入对象数组的值

时间:2013-09-22 12:30:27

标签: javascript

我有压延机的这些数据

var codropsEvents = {
"09-10-2013" : "Event Name 1",
"09-11-2013" : "Event Name 2"
                    };

从数据中获取一个对象数组。我想让它变得动态,所以我做了类似的事情

var codropsEvents = [];
codropsEvents.push({"09-10-2013" : "Event Name 1"});

但它没有出现在日历上的事件。我是以错误的方式初始化对象数组还是我推错了数据。

日历在这里 http://tympanus.net/codrops/2012/11/27/calendario-a-flexible-calendar-plugin/comment-page-4/

3 个答案:

答案 0 :(得分:1)

阅读javascript中的数组和对象。

//Object, { Key : value }
var codropsEventsObject = {
 "09-10-2013" : "Event Name 1",
 "09-11-2013" : "Event Name 2"
};
//Array , Also, array of objects
var codropsEventsArr = [ 
 {"09-10-2013" : "Event Name 1"},
 {"09-11-2013" : "Event Name 2"}
];

向对象添加新元素的不同方法

codropsEventsObject.newEle = "newValue"  
codropsEventsObject["newEle"] = "newValue"
codropsEventsObject[newEle] = "newValue"    // newEle is a js variable

向数组添加新元素的不同方法

codropsEventsArr.push( {newEle , "newValue"})  // newEle is a js variable
codropsEventsArr.push( {"newEle" , "newValue"})

希望有所帮助

答案 1 :(得分:1)

日历接受对象文字,而不是数组。见http://tympanus.net/Development/Calendario/js/data.js

你说(见下面的评论):

for (var x = 0; x < msg.length; x++) { 
  date = msg[x].date; event_name = msg[x].event;
}

相反:

var codropsEvents = {};
for (var x = 0; x < msg.length; x++) { 
  codropsEvents[msg[x].date] = msg[x].event;
}

然后您就可以将对象文字绑定到日历。

http://jsfiddle.net/XmgXG/

答案 2 :(得分:0)

你的问题中有些不太清楚。

根据代码的顶部,似乎变量codropsEvents是一个包含名称/值对的对象。

当您的推送操作将新对象推送到数组时,不会向对象添加新值。

  • 那么你想在这里实现什么目标?
  • 你想要一个对象数组吗?
  • 想要一个具有多个值的对象吗?

为了保持动态,您必须更改代码以支持对象数组。

或者您可以执行以下操作并使用一个具有多个值的对象

var codropsEvents = [];
codropsEvents["09-10-2013"] = "Event Name 1";
codropsEvents["09-10-2013"] = "Event Name 2";