2012-06-15 5 views
2

배열에 함수를 전달하고 있습니다. json 스타일 배열 초기화 프로그램을 사용하여 익명 배열을 전달하는 빠른 방법이 있는지 궁금합니다.0이 아닌 인덱스로 자바 배열을 초기화하는 방법

예 :

myfunction([1,2,3,4]); 

한 제로가 아닌 인덱스 배열을 초기화 할 수 있도록 할 자바 스크립트에서 일부 특수 구문이 있습니까?

예를 들어

대신

myfunction([,,,,4321]); 

//array[4] == 4321 here 

하지만 당신은 정의되지 않은 처음 100 개 위치가 배열이있는 경우, 100 개 쉼표를해야합니다. [,, ..., 4321]

는 기본적를위한 간단한 양식을 찾고 : 당신은 함수의 매개 변수로 사용할 수 있습니다

var a = new Array(); a[100] = 4321; 

합니다.

+0

당신이 패드에 루프를 배열을 만들 수 없습니다? – j08691

+0

@ j08691 익명 배열을 어떻게 루프 할 수 있는지 확실하지 않습니다. 피하고자하는 변수 인 upfront를 정의하는 것이 더 쉬울 것입니다. – MandoMando

+1

100 쉼표가 아닌 99 – Mageek

답변

9

뭔가 같은 :

var a = new Array(100).concat([4321]); 
+0

니스. myfunction (new Array (100) .concat ([4321], new Array (20), [65433], new Array (999), [234], ...)) 또한 여러 항목에서 작동해야합니다. ; – MandoMando

3

아마 최단 접근 방식 (하지만 매우 읽을 수는)

(a = [])[100] = 4321; 

될 것이라고하지만 추가 요소가 아닌 전체 배열을 반환로 여전히 당신은 함수의 매개 변수로이 직접 사용할 수 없습니다. 여전히 myFunction(a)으로 전화해야합니다. 이런 일에

2

패스 :

myfunction({100: "foo", 101: "bar"}); 

이 작동 :

function testArray(arr) { 
    alert(arr[4]); 
} 

testArray({4: "foo"}); //alerts "foo" 
관련 문제