[英]Javascript arrays and JQuery .param
我注意到了一些奇怪的事情。 我一直认为new Array()
与{}
是相同的,但是它似乎有所不同,因为{}
似乎只是对象类型,而new Array()
是Chrome调试器中的Array。
所以我一直在使用$.param(data)
,其中data是来自$.ajax()
调用的数据。 我注意到,当我在数据中有一个params1 = new Array()
和一个params2 = {}
,它们的输出结果会有所不同。
params1变为
params1[]=1¶ms1[]=2
并且params2变成
params2[0]=1¶ms2[1]=2.
问题是我一直使用.param(data, false)
因为我注意到params1[]
序列化不正确,但是.param(data, false)
对于params2
失败,给了我params2=[object+Object]
。
我想我可以通过仅使用.param(data)并去除“ []”来解决此问题,以便无论使用{}
或new Array
对其进行初始化,它都可以正常工作。 但是我想知道是否有更好的解决方案(除了总是使用{}
new Array
)。
Kyliod,
在javascript中,{}是创建新Object的简写,而[]是“ new Array()”的简写。
所以:
var myArray1 = [];
var myArray2 = new Array();
var myObject = {};
myObject.objVariable1 = 'some string or other variable data';
var myObject2 = { obj2Var1 : 'some string', obj2Var2 : 1234, obj2Var3 : true };
// do stuff
var thing1 = myArray1[1]; // get something out of myArray1
var thing2 = myArray2[2]; // get something out of myArray2
var thing3 = myObject.objVariable1; // get something out of myObject
if(myObject2.obj2Var3)
{
// do other stuff
}
希望这可以帮助您清除jQuery / javascript Ajax问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.