一、Array length 簡介
- length 屬性的值,一定是一個正整數,這個正整數介於 0 至 2 的 32 次方(4,294,967,296)間,不包含 2 的 32 次方。
- 一般情況下,同一個 Array 的 length 值,不會等於或小於此 Array 的最大索引值,length 值會比最大的索引值多 1,若為空陣列,則不符合此原則。
二、Array length 用法
求陣列的長度
let arr = ["1", "2", "3"]; console.log(arr.length); // 3
清空陣列
let arr = ["1", "2", "3"]; arr.length = 0; console.log(arr); // []
上面這個方法,也可以用 arr.length = []; 取代,效果相同。
改變陣列長度-增加陣列長度:
這個方法可增加陣列的長度,但增加的元素是不可迭代(non-iterable)的空槽(empty slot)。
const arr = ["1", "2", "3"]; console.log(arr); // ["1", "2", "3"] arr.length = 5; // 將原本的陣列長度從 3 改成 5 console.log(arr); // ["1","2","3",,] // 陣列長度增加,但新增的元素無法被迭代 arr.forEach(function(item){ console.log(item); // "1" // "2" // "3" });
改變陣列長度-縮減陣列長度
const arr = ["1", "2", "3", "4", "5"]; console.log(arr); // ["1", "2", "3", "4", "5"] arr.length = 3; console.log(arr); // ["1", "2", "3"]
三、Array length 其他用法
取得 Array 最後一個元素
const fruits = ["apple", "orange", "lemon"]; let lastFruit = fruits[fruits.length - 1]; console.log(lastFruit); // "lemon"
刪除 Array 最後一個元素
const fruits = ["apple", "orange", "lemon"]; fruits.length = fruits.length - 1; console.log(fruits); // ["apple","orange"]
JavaScript 的方法 pop(),可達成上述兩種方法的結果,取得 Array 最後一個元素的值並回傳,並刪除最後一個元素,這個方法會縮減 Array 的長度。
在 Array 尾巴增加一個元素
const fruits = ["apple", "orange", "lemon"]; fruits[fruits.length] = "peach"; console.log(fruits); // ["apple","orange","lemon","peach"]
JavaScript 的方法 push(),也可達成上述的結果,這個方法會增加 Array 的長度。
當成迴圈停止的條件
const numbers = [1, 3, 5, 7]; let numbersTotal = 0; for(let i = 0; i < numbers.length; i++){ numbersTotal = numbersTotal + numbers[i]; } console.log(numbersTotal); //16
參考資料:
https://ithelp.ithome.com.tw/articles/10218138
https://www.fooish.com/javascript/array/length.html
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Array/length