2010-08-14 40 views
1

我试图序列化为URL字符串的关联数组,其元素在运行时以arr[key]=value的形式定义,其中键和值在运行时确定,但arr在运行时被预定义为全局。我不能让param()函数与这种数组一起工作。是否有另一个函数用于序列化这些数组?在运行时分配值的关联数组的jQuery参数()

var arr=[]; 
arr["apple"]="poisoned"; 
arr["banana"]="digested"; 

var str=jQuery.param(arr); 
$("#results").text(str); 
​ 
+1

看看这个问题:http://stackoverflow.com/questions/3462087/passing-an-nested-arrays-to-asp-net-mvc-using-jquerys-ajax/3463129#3463129 – 2010-08-14 04:15:22

回答

1

使用对象符号来代替:

var arr={}; 
arr["apple"]="poisoned"; // or arr.apple 
arr["banana"]="digested"; // or arr.banana 

虽然对象和数组在类似的操作方式相同JS它仍然不如想想阵列作为数字索引数组,而不是哈希。

+0

嗯,如果它是一个对象而不是数组 - 会使用'delete'和'pop()'来操作它吗? – ina 2010-08-14 03:13:11

+0

'delete'就可以了。除非你创建你自己的方法并且创建对象,否则'pop'将不起作用。但是如果你需要命名键,为什么你要使用'pop' /'push'?我认为这已经成为一个更具体的问题,关于你想要做什么......你是否在意详细说明你想要实现的内容? – prodigitalson 2010-08-14 03:19:20