2017-10-07 13 views
0

以下の関数は、この出力を返します。しかし、なぜ私は理解できません。すべての手がかりは? Output: {"A":{"antal":null},"B":{"antal":null},"C":{"antal":null},"D":{"antal":null},"E":{"antal":null},"G":{"antal":null}} array for function returns null

機能は、ここで

function seriestat(){ 
     var statserier = {}; 

     $.each(globalSIEdata["#EXTRA"]["VERSERIER"], function(i, item) { 
        statserier[i] = {}; 
     }); 
     $.each(globalSIEdata["#VER"], function(i2, item2) { 
       var serie = i2.substring(0, i2.indexOf('-')); 
       statserier[serie]["antal"] += 1; 
     }); 
     return statserier; 
    } 

はglobalSIEdataから一例である:

{ "#VER": { 
    "A-1": { 
     "verdatum": "2017-01-03" 
    }, 
    "A-2": { 
     "verdatum": "2017-01-03" 
    }, 
    "B-1": { 
     "verdatum": "2017-01-03" 
    }, 
    "B-2": { 
     "verdatum": "2017-01-03" 
    } 
    "A-3": { 
     "verdatum": "2017-01-03" 
    } 

}

+1

あなたは理解していませんか? – Andy

+1

'globalSIEdata'はどのように見えますか?レビュー/テストのためにサンプル/最小限のデータを共有できますか? –

+1

'statserier [serie] [" antal "] + = 1'と期待される結果は何ですか? – guest271314

答えて

3

あなたは、それが不定となりますので、 "アンタル" プロパティを初期化しようとするのを忘れ次のようなもの:

statserier[serie]["antal"] = (statserier[serie]["antal"] || 0) + 1; 

またあなたの代わりに次のようにあなたのstatserierオブジェクトを初期化しようとすることができます。オブジェクトを作成し、移入関数はオブジェクトを返す理由

statserier[i] = { antal: 0 }; 
+2

'undefined + 1'はあなたに' NaN'を与え、 'null 'を返します。 – MinusFour

+1

彼が投稿した出力は文字列化され、文字列化されたNaNはnullです。 – justadudewhohacks