2012-08-08 1 views
1

이상한 것을 발견했습니다. 나는 항상 new Array(){}과 동일하다고 생각했지만, {}은 오브젝트 유형일 뿐인 반면 new Array()은 Chrome 디버거의 배열입니다.자바 스크립트 배열과 JQuery .param

그래서 $.param(data)을 사용했습니다. 여기서 데이터는 $.ajax() 전화의 데이터입니다. 나는 내가 params1 = new Array()params2 = {}을 가지고있을 때 데이터가 다르게 나왔다.

params1는

params1[]=1&params1[]=2 

이되고 params2이 문제는 내가 params1[] 잘못 연재되고있는 것을 발견 때문에 나는 .param(data, false)을 사용했던 것입니다

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

된다, 그러나 .param(data, false)params2 실패 나를 준다 params2=[object+Object].

나는이 문제를 .param (데이터)을 사용하고 "[]"를 제거하여 {} 또는 new Array을 사용하여 초기화하는 것과 관계없이 올바르게 처리 할 수 ​​있다고 생각합니다. 하지만 더 좋은 해결책이 있는지 항상 알고 싶습니다. (항상 {}new Array을 사용하는 것보다 짧습니다).

+4

'[]'은 (는)'{}'가 아닌 새로운 자바 스크립트 배열을 만들기위한 속기입니다. 이미 보았 듯이'{}'는 빈 객체를 만듭니다. – j08691

+0

가능한 복제본 [{} 또는 새 Object()로 JavaScript에서 빈 개체 만들기?] (http://stackoverflow.com/questions/251402/create-an-empty-object-in-javascript-with-or- 새로운 개체) – DCoder

답변

1

Kyliod, 자바 스크립트

{}는 새로운 객체를 생성하기위한 속기이고, []는 속기는 "새로운 배열()."

는 SO :

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를/자바 스크립트 정리 아약스 문제를하는 데 도움이됩니다.