繁体   English   中英

Javascript数组和JQuery .param

[英]Javascript arrays and JQuery .param

我注意到了一些奇怪的事情。 我一直认为new Array(){}是相同的,但是它似乎有所不同,因为{}似乎只是对象类型,而new Array()是Chrome调试器中的Array。

所以我一直在使用$.param(data) ,其中data是来自$.ajax()调用的数据。 我注意到,当我在数据中有一个params1 = new Array()和一个params2 = {} ,它们的输出结果会有所不同。

params1变为

params1[]=1&params1[]=2 

并且params2变成

params2[0]=1&params2[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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM