本文實例講述了JavaScript數組特性與實踐應用。分享給大家供大家參考,具體如下:
JavaScript 提供了一種類似數組特性的對象,它把數組的下標變為字符串,作為對象的屬性。雖然它比一個真正的數組來的慢,但是使用起來很方便。
1 數組字面量
數組字面量是在一對方括號中包圍零個或多個用逗號分隔的值的表達式:
var empty = [];var numbers = [ 'zero', 'one', 'two', 'three'];console.log(empty[1]);//undefinedconsole.log(numbers[1]);//oneconsole.log(empty.length);//0console.log(numbers.length);//4
數組對象繼承自 Array.prototype,所以 numbers 繼承了大量有用的方法。
JavaScript 允許數組包含任意混合類型的值:
var misc = [ 'string', 11.3, false, true, null, undefined, ['nested', 'array'], {object: true}, NaN, Infinity];console.log(misc.length);//102 長度
數組有一個 length 屬性,但它是沒有上界的。如果用大等于當前 length 的數字作為下標來存儲元素,那么 length 屬性值會被增大以便容納新的元素,而不會發生數組越界現象哦O(∩_∩)O~
length 屬性的值很詭異,它是數組最大整數屬性名加 1,即它不一定等于數組的元素個數:
var myArray = [];console.log(myArray.length);//0//myArray 只包含一個屬性,但 length 的值等于這個數組最大整數的屬性名加 1myArray[100000] = true;console.log(myArray.length);//100001
[] 后置運算符會把它包含的表達式轉換為字符串,如果表達式有 toString() 方法,那么就會調用它。這個字符串被當做屬性名,如果這個字符串是一個大等于當前 length 值而且小于 4294967295 的正整數,那么這個數組的 length 就會被重置為新的下標加 1。
可以直接設置 length 的值。設置更大的 length 值不會為數組分配更多的空間;而把 length 設小則會導致所有下標大等于新的 length 的屬性被刪除:
//刪除元素numbers.length = 3;console.log(numbers);//[ "zero", "one", "two" ]
把下標指定為數組的當前 length,就可以把一個新元素附加到數組的尾部:
//新增元素numbers[numbers.length] = 'four';console.log(numbers);//[ "zero", "one", "two", "four" ]
使用 push() 可以更方便地實現同樣的功能:
//新增元素(push)numbers.push('good');console.log(numbers);//[ "zero", "one", "two", "four", "good" ]3 刪除
JavaScript 數組就是對象,所以可以用 delete 移除元素:
delete numbers[2];console.log(numbers);//[ "zero", "one", <1 個空的存儲位置>, "four", "good" ]
可惜的是,這會在數組中留下一個空洞!而我們希望的是:刪除后,被刪除元素的后續元素會自動地往前移動。
新聞熱點
疑難解答
圖片精選