數組的長度、數組元素的添加和刪除



友情鏈接:

47道HTTP面試題總結  98道vue面試題總結


 

一、數組的長度

  1).每個數組都有一個length屬性:征對稠密數組,length屬性值代表了元素中的個數,其值比數組中的最大索引數大1,當數組是稀疏的時,length的值大於元素的個數。數組長度保證大於它的每個元素的索引值。

      2).數組有兩個特殊行為:

       第一個:如果為一個數組元素賦值,它的索引i大於或等於現有的數組的長度時,length的值將設置為i+1。

           第二個:設置length屬性為一個小於當前長度的非負整數n時,當前數組中的那些索引值大於或等於n的元素將從中刪除。

 var a = [1, 2, 3, 4, 5]; //從5個元素的數組開始
       a.length = 3; //現在a為 [1, 2, 3]
       a.length = 0; //刪除所有的元素a為[]
       a.length = 5; //長度為5,但是沒有元素,就行new Array(5)

 

  (注:還可以將數組的length屬性值設置為大於當前的長度。實際上不會向數組中添加新的元素,它只是在的尾部創建一個空的區域

  3).在ECMAScript5中,可以使用Object.defineProperty()將數組的屬性變成只讀的:

 var a = [1, 2, 3];
     Object.defineProperty(a, "length", {writable: false});
     a.length = 0;
     console.log(a);//=> [1, 2, 3]

  (注:類似的,如果讓一個數組元素不能配置,就不能刪除它。如果不能刪除它,length的屬性不能設置小於不可配置元素的索引值(見Object.seal()和Object.freeze()方法))。

二、數組元素的添加和刪除

  1.添加:

    1).為新索引賦值

    2).使用push()方法在數組的末尾增加一個或多個元素;

    3).使用unshift()方法給首部插入一個元素,並且將其他元素移動到更高的索引處.

1).
    a = []; //開始是一個空數組
    a[0] = "zero"; //想其中添加元素
    a[1] = "one";
    a;//=> ["zero", "one"]
2).
  a = []; //開始是空數組
  a.push("zero");
//在末尾添加一個元素。 a = ["zero"]
  a.push("one","two");//再添加兩個元素
  a;//=>["zero", "one", "two"]
  a.unshift("start");
  a;//=> ["start", "zero", "one", "two"];  

  2.刪除:

var arr = [0,1,2];
    delete arr[1];
    console.log(arr[1]);  //undefined
    console.log(arr.length);  //3:delete操作並不影響數組的長度

(注:刪除數組元素與為其賦值undefined值是類似的(但有一些微妙的區別)。對一個數組元素使用delete不會修改數組的length屬性;也不會將元素從高索引處移下來填充已經刪除的元素空白。如果從一個數組中刪除一個元素,它就變成稀疏數組。

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM