2011-09-01 78 views
2

我有一個網站根據當前登錄的用戶可以看到的商店動態創建兩個Lat/Long值數組。如果用戶只能看到一個位置,那麼我得到一個有關數組長度的錯誤需要是有限整數。當我看到我看到的源帶有單個元素的數組Javascript

var ls = new Array(45.056124); 

正在頁面上動態創建,這正是我所期待的。除了我認爲它正在處理它,就好像我試圖設置數組的長度而不是將第一個元素設置爲該值。

我該如何使用ClientScript.RegisterArrayDeclaration函數創建一個使用vb.net保存單個double值的數組?

+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

這是JavaScript的壞的部分之一。 Array構造函數在傳遞一個Number參數(記住,在JavaScript中所有數字文字都是... Number s),將數組初始化爲預定義的長度。

這意味着:

var ls = new Array(45); 

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

當傳遞一個非整數Number,所述Array constructor拋出一個RangeError指示它不是一個有效的長度。

作爲一個經驗法則,因爲它已經說過,始終使用數組文本創建數組:

var ls = [45.056124];