我正在使用Date.js来显示一些日期,并发生一些奇怪的事情。如果我在each
语句中形成的数组中使用它。
这就是我的意思:
如果我传递并使用events_array
到test
函数数组,一切正常,但如果我使用eventsArray
,那应该看起来一样,我得到:
startDate is undefined
...new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()).getTime()...
function getTest() {
$.ajax({
type: "GET",
url: "/index",
dataType: "json",
success: function (data) {
var eventsArray = new Array();
jQuery.each(data, function (i, val) {
eventsArray.push(
new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}));
});
var events_array = new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}, {
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
});
test(events_array);
}
});
}
有什么想法吗?
由于
答案 0 :(得分:2)
在测试功能中尝试以下操作:
function test(eventsArray) {
// try this
eventsArray[0][0].startDate
}
eventsArray
如下所示:
eventsArray = [
[
{
startDate: ..
endDate: ..
}
]
];
但你应该更容易:
var eventsArray = new Array();
eventsArray.push({
startDat: ..
endDate: ..
});
如果您不需要,请不要在eventsArray
内使用其他数组。
并访问该值使用:
eventsArray[0].startDate;
eventsArra[0].endDate;
events_array
,您会看到,当您在其中推送数据时,您没有使用其他数组。答案 1 :(得分:1)
你可能想用eventArray
填充对象,而不是每个对象都有一个对象:
eventsArray.push({ // NOT new Array...
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10)
}); });
答案 2 :(得分:1)
你的两个数组并不相同: var eventsArray = new Array();
jQuery.each(data, function (i, val) {
eventsArray.push(
new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}));
});
/* here eventsArray is like that [[{
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}]] Look at the two [[ or ]] : array of object in an array
*/
var events_array = new Array({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}, {
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
});
/* here events_array is like that [{
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10),
}, {}] only one [ ... array of objects ...
*/
我认为你应该使用:
eventsArray.push({
startDate: new Date(2011, 07, 20, 15, 50),
endDate: new Date(2012, 00, 10)
}); });
希望这有帮助