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 和 Jquery Mobile

4

3 回答 3

3

好像您正在使用带有字符串索引的数组。这不会很好地工作:

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

改用一个对象:

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

仅使用带有数字索引的数组。

于 2012-06-21T20:11:20.187 回答
0

使用JQuery 的 map 函数

您可以遍历数组或 JSON 对象中的所有项目。

顺便说一句,将 console.log(array) 添加到您的代码和 chrome web dev env 中,或者在 firebug 中检查它的结构。

于 2012-06-21T20:11:53.680 回答
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 回答