任何人都可以解釋爲什麼第二個警報說0嗎?JavaScript數組長度方法
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
任何人都可以解釋爲什麼第二個警報說0嗎?JavaScript數組長度方法
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
只有添加數字索引時,數組的長度纔會更改。例如,
pollData["randomString"] = 23;
對長度沒有影響,但
var pollData = [];
pollData["45"] = "Hello";
pollData.length; // 46
改變長度46注,這並不重要,如果該鍵是一個數字或字符串,只要它是一個數字整數。另外,你不應該這樣使用數組。考慮它更多的副作用,因爲數組也是對象,並且在JavaScript中,任何對象都可以將任意鍵保存爲字符串。
因爲您還沒有將任何東西放入數組中。您只分配給陣列對象上動態創建的pollType
屬性。
如果使用數字索引,則數組自動處理長度。例如:
var arr = [ ]; // same as new Array()
arr[2] = 'Banana!';
alert(arr.length); // prints 3 (indexes 0 through 2 were created)
的length
屬性僅考慮所述陣列名稱是索引的那些成員(例如'1'
,'2'
,'3'
,...)。
JavaScript中的數組只有數字索引。
使用一個對象,這基本上就是你在做什麼,在該數組對象上設置屬性。
array.length返回數組中存儲了多少個值。第一個警報返回位置'pollType'的值。
的參考指南需要幫助的JavaScript陣列時,我一直用的是這個頁面http://www.hunlock.com/blogs/Mastering_Javascript_Arrays
我還念出來的標題下的Javascript不支持關聯數組,你可能會遇到這個問題,也。
只是想要說明的是,儘管這就是Array.length應該做的事情,但它並不是那樣。這裏:http://jsfiddle.net/6WrkT/1/ –
var pollData = Array();
function test() {
pollData[0] = 2
alert(pollData[0]);
alert(pollData.length);
}
// [x]是數組位置;因此['polltype']正在導致問題
那個狗屎。不要這樣做陣列ü讓我的大腦受傷 –