2016-09-19 7 views
-4

を与えますしかし、私は未定義のエラーを取得しています。JSは私に未定義

また、アラート(data.ModelState)を実行しようとすると、私はObjectオブジェクトを取得しています。

ModelState配列の最初の値にどのようにアクセスできますか?ありがとう

+1

を空のキー(あるいは空白?)を返します。ですから、 'data.ModelState [" "] [0]' – vlaz

+0

のようなものが必要です。これはどのブラウザでテストしていますか? @Laziale –

+0

@RanojitBanerjeeはFirefoxです。具体的には、Firebug拡張機能です。 – vlaz

答えて

0

データに空白または空白のキーが含まれる配列が含まれているようです。だから、それが最も可能性が高い。この

{ 
    ModelState: { 
     "": [ "string1", "string2" ] 
    } 
} 

のように見えるあなたがわからない場合は限り、あなたはそれが何であるかを知っているように、たとえばdata.ModelState[""][1] //"string1"

のための選択肢もありますが、そこにキー経由でアクセスする必要があります彼らは鍵があるか、脆くコードたい:私はそれを持っているオブジェクトであると考えてい

var data = { 
 
    ModelState: { 
 
    "": [ "string1", "string2" ] 
 
    } 
 
}; 
 

 
console.log("--Using Object.keys--") 
 
Object.keys(data.ModelState).forEach(function(key) { 
 
    console.log(data.ModelState[key]); 
 
}) 
 

 
console.log("--Using for...in loop--") 
 
for (var key in data.ModelState) { 
 
    console.log(data.ModelState[key]); 
 
}

0

data.ModelState[''][0]を使用してアクセスする必要があります。 2つの文字列を含む配列の要素に空白または空白のみの文字列がある場合は、ネストした配列があるようです。

0

[object Object]あなたの最初の手掛かりですが、正確な問題は再現できませんが、配列であると思われるオブジェクトは実際はJavaScript Objectです。これは別のデータ構造です。 JSオブジェクトは他のオブジェクト指向言語のオブジェクトとかなり似ています。それらの文字列表現は、あなたが気付いたように、その内容にかかわらず[object Object]]です。あなたの質問は、それを再現する方法についての手順で更新した場合、私はより多くのを助けることができる

> String({}) 
< "[object Object]" 
> String({abc: "foo", def: "bar"}) 
< "[object Object]" 

が、私はそれが正しい軌道に乗ってあなたを取得するのに十分です願っています!