0

JSONオブジェクトと配列をJavascript関数に渡していますが、特定の値を警告しない限り、警告すると配列は空で動作します。

function myFunction(jsonObj, array){
    alert(array['item1']['name']);    //alerts "item1"
    alert(array);                     // alerts "" (not [object] as I'd expect)
    alert(array.join(''));            // alerts ""
}

私は何が欠けていますか?

xcodeでphonegapを使用して開発しており、jQueryとJqueryMobileも使用しています

4

3 に答える 3

3

文字列インデックスを持つ配列を使用しているようです。それはうまくいきません:

> var array = [];
> array['foo'] = 'bar';
> array.length
0

代わりにオブジェクトを使用してください:

var obj = {};
obj['foo'] = 'bar';

配列は数値インデックスでのみ使用してください。

于 2012-06-21T20:11:20.187 に答える
0

配列は、結合のような通常の配列関数を使用するために、インデックスとして数値のみを持つことができます

ただし、連想配列は JSON オブジェクトと同じように扱われます。次のように連想配列で結合できます。

var temp=[];
temp['item']='hello ';
temp['item2']='world';
var joinedString="";
for( i in temp ){
     console.log(temp[i];
     joinedString+=temp[i];
}
 alert(joinedString);   // Prints hello world

マップのように使用し、 foreach ループを使用します。join 、 length 、 all などの通常の配列関数は機能しません

于 2012-06-21T20:52:38.587 に答える
0

JQuery の map 関数を使用します。

配列または JSON オブジェクト内のすべてのアイテムをトラバースできます。

ちなみに、 console.log(array) をコードに追加し、chrome web dev env に追加するか、firebug でその構造を確認してください。

于 2012-06-21T20:11:53.680 に答える