Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象位于数组中,但无法访问它_Javascript_Arrays_Date_Object - Fatal编程技术网

Javascript对象位于数组中,但无法访问它

Javascript对象位于数组中,但无法访问它,javascript,arrays,date,object,Javascript,Arrays,Date,Object,我有一个for循环,它在响应中遍历currentObject 此代码: console.log(response[currentObject]); 清楚地显示响应[currentObject]的其他属性中有start 但是,此代码告诉我变量未定义: console.log(response[currentObject].start); 为什么会这样?请注意,start是一个日期变量 以下是整个功能: function(response) {

我有一个for循环,它在响应中遍历currentObject

此代码:

console.log(response[currentObject]);
清楚地显示响应[currentObject]的其他属性中有start

但是,此代码告诉我变量未定义:

console.log(response[currentObject].start);
为什么会这样?请注意,start是一个日期变量

以下是整个功能:

function(response) {

                            for (var currentObject in response) {
                                //Parsing the data before its used
                                //"17\/10\/2012 20:55:00"
                                var phpStartDate = response[currentObject].start;
                                console.log(response[currentObject]);
                                var phpStopDate = response[currentObject].stop;
                                var datePartsStart = phpStartDate.match(/(\d+)/g);
                                var datePartsStop = phpStopDate.match(/(\d+)/g);
                                var parsedDateStart = new Date(datePartsStart[2], datePartsStart[1], datePartsStart[0], datePartsStart[3], datePartsStart[4], datePartsStart[5]);
                                var parsedDateStop = new Date(datePartsStop[2], datePartsStop[1], datePartsStop[0], datePartsStop[3], datePartsStop[4], datePartsStop[5]);

                                response[currentObject].start = parsedDateStart;
                                response[currentObject].stop = parsedDateStop;
                                //debugger;
                            };
                            return response;
                        }
忘记添加了,我使用的是jQuery1.8.2,我相信它处理日期的方式与1.7不同,但我不能使用1.7,因为我还有一大堆其他问题

下面是console.logresponse:Object的输出

data: Array[3]
0: Object
hourly: "4.00"
id: "40"
staff: "James Hadley"
start: "2012-09-25 00:00:00"
stop: "2012-09-27 00:00:00"
__proto__: Object
1: Object
hourly: "25.00"
id: "39"
staff: "James Hadley"
start: "2012-10-17 21:12:00"
stop: "2012-10-26 02:30:00"
__proto__: Object
2: Object
length: 3
__proto__: Array[0]
total: 3
__proto__: Object
使用

currentObject.start=ParsedDataStart

而不是

响应[currentObject].start=ParsedDataStart


我想这是一个时间问题,因为console.log对象是活动的。试一试

我打赌它不包括开始,甚至思想没有严格化它。您的响应是异步的,并且您的访问开始得太早—您的代码没有显示该部分

现在你的评论很明显。它是一个数组,您缺少和索引,例如0

console.log(response[currentObject][0].start);

那么响应是JSON?您能显示响应和响应类型的输出吗?是的,它是JSON。typeof显示对象。我现在正在编辑上面的回复。currentObject是关键的可怕名称,我知道,不是值,所以这不起作用。[{id:40,开始:2012-09-25 00:00:00,停止:2012-09-27 00:00:00:00,每小时:4.00,工作人员:James Hadley},{id:39,开始:2012-10-17 21:12:00,停止:2012-10-26 02:30:00,每小时:25.00,工作人员:James Hadley},{id:37,开始:2012-12-20 00:00:00,停止:2012-12-20 00:00:00,每小时:25.00,工作人员:詹姆斯·哈德利}]真不敢相信我错过了。谢谢!
console.log(response[currentObject][0].start);