0

応答で currentObject を反復処理する for ループがあります。

このコード:

console.log(response[currentObject]);

response[currentObject] が他のプロパティの中で "start" を持っていることを明確に示しています。

ただし、このコードは、変数が未定義であることを示しています。

console.log(response[currentObject].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;
                        }

追加するのを忘れていましたが、私はjQuery 1.8.2を使用しています.1.7とは日付の扱いが異なると思います.

console.log(response):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
4

2 に答える 2

0

console.log オブジェクトがliveであるため、タイミングの問題だと思います。試す

console.log(JSON.stringify(response[currentObject]));

startそれがなければ考えも含まないに違いstringifyない。応答が非同期で、アクセスstartが早すぎます (コードにはその部分が表示されません)。

今、あなたのコメントでそれは明らかです。それは配列であり、欠落しており、インデックス、たとえば 0 です。

console.log(response[currentObject][0].start);
于 2012-10-23T18:10:21.120 に答える
-1

使用する

currentObject.start = parsedDateStart

それ以外の

応答[現在のオブジェクト].start = parsedDateStart

于 2012-10-23T18:04:27.393 に答える