2011-09-01 6 views
2

현재 로그인 한 사용자가 볼 수있는 저장소를 기반으로 두 개의 위도/경도 배열을 동적으로 만드는 사이트가 있습니다. 사용자가 하나의 위치 만 볼 수 있다면 배열 길이가 유한 정수가되어야한다는 오류가 발생합니다. 내가 본 소스를 볼 때단일 요소가있는 배열 자바 스크립트

var ls = new Array(45.056124); 

이 동적으로 생성되고 있습니다. 이것은 제가 기대하고있는 것입니다. 나는 그 값으로 첫 번째 요소를 설정하는 대신 배열의 길이를 설정하려고하는 것처럼 처리한다고 생각합니다.

ClientScript.RegisterArrayDeclaration 함수를 사용하여 vb.net을 사용하여 단일 이중 값을 보유하는 배열을 만드는 방법은 무엇입니까? 이 일을

+0

내가 콘라드 루돌프에 대한 답 감사를 발견했다. 필자는 ClientScript.RegisterArrayDeclaration 호출의 값 부분을 큰 따옴표로 묶은 다음 배열이 사용 된 곳이면 어디서나 javascript'parseFloat' 함수를 구현함으로써이를 해결했습니다. –

답변

0

하지 the documentation of the RegisterArrayDeclaration 방법은 필요한 모든 정보를 제공합니까? 로 보일 것이다

귀하의 특정 배열은 다음과 같습니다

Page.ClientScript.RegisterArrayDeclaration("ls", "45.056124") 
+0

설명서를 다시 보면'parseInt' 함수가 확장되므로 그것에 나는'parseFloat' 함수를 찾았고 트릭을했습니다. 마지막 며칠 사이에 나는 그 페이지를 너무 많이보고 있었으므로 한 발 뒤로 물러서는 것 같았습니다. –

5

시도 :

var ls = [45.056124]; //sets it as an array of one value 
+0

ClientScript.RegisterArrayDeclaration 함수를 사용하여 배열을 만들었으므로 "new Array()"메서드를 사용하여 잠겨 있다고 생각합니다. –

1

이 자바 스크립트의 나쁜 부분 중 하나입니다. Array 생성자가 하나의 Number 인수를 전달하면 (JavaScript에서 모두 숫자 리터럴은 ... Number) 미리 정의 된 길이로 배열을 초기화합니다. 수단

다음 Array constructor

var ls = new Array(45); 

ls.length === 45; // This is true 

을 비정 Number 통과하면은 RangeError 그것이 유효한 길이가 아님을 나타내는 던진다. 이미 말한 바와 같이 엄지 손가락의 규칙으로

는 항상 배열을 만들 수 배열 리터럴을 사용

var ls = [45.056124];