Javascript Prototype.js:如果没有Prototype扩展数组的所有方法,如何返回数组?

Javascript Prototype.js:如果没有Prototype扩展数组的所有方法,如何返回数组?,javascript,arrays,multidimensional-array,prototypejs,Javascript,Arrays,Multidimensional Array,Prototypejs,有没有一种方法可以返回新版本的数组/哈希,该数组/哈希不包含prototype扩展数组对象时使用的所有方法/函数 例如: var myArray = $A(); myArray['test'] = '1'; myArray['test2'] = '2'; var myVariableToPassToAjax = myArray; 如果我调试myVariableToPassToAjax,它如下所示: Array ( [test] => 1 [test2] => 2

有没有一种方法可以返回新版本的数组/哈希,该数组/哈希不包含prototype扩展数组对象时使用的所有方法/函数

例如:

var myArray = $A();

myArray['test'] = '1';

myArray['test2'] = '2';

var myVariableToPassToAjax = myArray;
如果我调试myVariableToPassToAjax,它如下所示:

Array
(

  [test] => 1

  [test2] => 2

  [each] => function each(iterator, context) {
    ..........
    ..........
  }

  ...and all the other extended array functions
);
有办法解决这个问题吗-/


Morten

无论如何,您似乎没有使用数组的数组属性,因此您可以只返回一个对象:

var o = {
    test1: '1',
    test2: '2'
};

Prototype扩展了数组对象的原型,因此它实际上打破了for(in)循环,并增加了您自己的键重叠的风险。从阅读为什么开始,然后尝试

通过AJAX发送对象。请求只需将其作为“参数”选项传递即可完成:


这个数组应该通过AJAX发送,所以我只需要一个带有键和值的assoc数组。。有没有办法做到这一点?MortenIs有一种方法可以生成一个函数,该函数可以为assoc数组生成这样一个对象,而assoc数组也可以包含其他数组。。。我想我的例子缺少一些细节。。。在JavaScript中,每个对象都可以被描述为一个关联数组。我的示例没有什么特别之处:它只是创建了一个bog标准对象并为其分配属性,然后可以使用
中的…枚举该对象。属性可以是任何类型,包括数组。我只是在您的示例中没有看到这种可能性。。但我现在看到了!你一直都是完全正确的…:-)这就是解决办法!非常感谢你!好这完全是一个解决办法!这不管用。。。var myObj={};var myObj2={};myObj['test']='1';myObj['obj']=myObj2;它现在只包含:数组(['test']=>1);我做错了什么?或者它不会这样工作吗?您可以这样做:var myObj={};var myObj2={“test2”:2};myObj['test']='1';myObj['obj']=myObj2;新的Ajax.Request([url],{参数:{object:$H(myObj.toJSON()}});然后,在服务器端,您将收到“object”参数,您可以对其进行解码(如果使用PHP,则为json_解码)
var myObj = {};
myObj['test'] = '1';
myObj['test2'] = '2';
new Ajax.Request([url], {
    parameters: myObj
});