1

変なことに気がついた。私はいつも とnew Array()同じだと思っていましたが、Chrome デバッガーでは配列であるのに対し、単なるオブジェクト タイプのように{}見えるため、異なるようです。{}new Array()

だから私は使用してきました。 data は呼び出し$.param(data)からのデータです。データの中に aと aがあると、結果が異なること $.ajax()に気付きました。params1 = new Array()params2 = {}

params1 は

params1[]=1&params1[]=2 

そして params2 は

params2[0]=1&params2[1]=2.

問題は、それが正しくシリアル化されていない.param(data, false)ことに気付いたために使用していたことですが、失敗して.params1[].param(data, false)params2params2=[object+Object]

.param(data) を使用して "[]" を取り除くだけでこれを回避できるので、{}orを使用して初期化されていnew Arrayても、正しく機能します。しかし、より良い解決策があるかどうか知りたいです(常に{}vsを使用することを除くnew Array)。

4

1 に答える 1

1

キリオド、

JavaScript では、{} は新しいオブジェクトを作成するための省略形であり、[] は「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 の問題を解決するのに役立つことを願っています。

于 2012-08-08T20:08:33.150 に答える