JavaScript 五四三 Ep.01 Array.length


Posted by ABow_Chen on 2022-09-11

一、Array length 簡介

  1. length 屬性的值,一定是一個正整數,這個正整數介於 0 至 2 的 32 次方(4,294,967,296)間,不包含 2 的 32 次方。
  2. 一般情況下,同一個 Array 的 length 值,不會等於或小於此 Array 的最大索引值,length 值會比最大的索引值多 1,若為空陣列,則不符合此原則。

二、Array length 用法

  1. 求陣列的長度

     let arr = ["1", "2", "3"];
     console.log(arr.length); // 3
    
  2. 清空陣列

     let arr = ["1", "2", "3"];
     arr.length = 0;
     console.log(arr); // []
    

    上面這個方法,也可以用 arr.length = []; 取代,效果相同。

  3. 改變陣列長度-增加陣列長度:

    這個方法可增加陣列的長度,但增加的元素是不可迭代(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"
     });
    
  4. 改變陣列長度-縮減陣列長度

     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 其他用法

  1. 取得 Array 最後一個元素

     const fruits = ["apple", "orange", "lemon"];
     let lastFruit = fruits[fruits.length - 1];
     console.log(lastFruit); // "lemon"
    
  2. 刪除 Array 最後一個元素

     const fruits = ["apple", "orange", "lemon"];
     fruits.length = fruits.length - 1;
     console.log(fruits); // ["apple","orange"]
    

    JavaScript 的方法 pop(),可達成上述兩種方法的結果,取得 Array 最後一個元素的值並回傳,並刪除最後一個元素,這個方法會縮減 Array 的長度。

  3. 在 Array 尾巴增加一個元素

     const fruits = ["apple", "orange", "lemon"];
     fruits[fruits.length] = "peach";
     console.log(fruits); // ["apple","orange","lemon","peach"]
    

    JavaScript 的方法 push(),也可達成上述的結果,這個方法會增加 Array 的長度。

  4. 當成迴圈停止的條件

     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


#javascript







Related Posts

D17_第二週作業、變數儲存模型

D17_第二週作業、變數儲存模型

用 Express & Sequelize 打造 MVC 餐廳網站(上)

用 Express & Sequelize 打造 MVC 餐廳網站(上)

[工作日誌 2021.11.10] 第一次面試紀錄

[工作日誌 2021.11.10] 第一次面試紀錄


Comments