js學習筆記041 陣列長度

2021-06-16 23:32:45 字數 792 閱讀 7399

特性1:length屬性值大於元素個數,如果為乙個陣列元素賦值,它的索引i大於或等於現有陣列的長度時,length屬性的值將設定為i+1

特性2:當設定length屬性為乙個小於當前長度的非負整數n時,當前陣列中的那些索引值大於或等於n的元素將從中刪除。設定大於當前長度。實際上這不會向陣列中新增新的元素,它只是在陣列尾部建立乙個空的區域。ecmascript 5的object.defineproperty()讓陣列的length屬性變為唯讀。

a = [1,2,3];

object.defineproperty(a,」length」,);

a.      length = 0; //a不會變

//同理讓乙個陣列不能配置,就不能刪除它,如果不能刪除它,length屬性不能設定為小於不可配置元素的索引值。

遍歷陣列元素,最佳實踐是,只呼叫一次陣列長度,而不是每次都去判斷一下陣列的長度如下:

for(var i=0;i

if(!a[i]) continue; //跳過null ,undefined

if(a[i]==undefined)continue; //跳過undefined+不存在的元素

//如果只想路過不存在的元素,而仍然要處理存在的undefined元素

if(!(i in a))continue; //跳過不存在元素 }

也可以使用for/in來遍歷稀疏陣列。迴圈每次將乙個可列舉的屬性名賦值給迴圈變數。不存在的索引將不會遍歷到:

for(var index in sparsearray)

js 多維陣列長度 js多維陣列

方法一 直接定義並且初始化,這種遇到數量少的情況可以用 var thearray 0 1 0 2 1 1 1 2 2 1 2 2 方法二 未知長度的二維陣列 var tarray new array 先宣告一維 for var k 0 k tarray k new array 宣告二維,每乙個一維陣...

js陣列長度獲取問題?

var test new array test test1 1 test test2 2 test 2 3 test length 輸出3 首先 test test1 1 和 test test2 2 都是屬性,可以通過test.test1 這樣來取值。但是 test 2 3 test.length...

js無法獲取陣列長度

通過console.log value instanceof array 去判斷,列印結果為true,但是在value.length獲取長度屬性時還是報錯。通過網上查資料解決了我的問題。出現問題原因 有的時候我們需要設定的key不是數字索引,而是非數字索引,那麼如何獲取長度呢。我們可以把array看...