JavaScript陣列(一)

亦世發表於2018-08-23

var arr1 = [];   //陣列字面量

var arr2 = new Array();  //不推薦

//通過系統內建的Array建構函式宣告陣列

var arr3 = Array(); //不使用

//所有陣列都繼承於Array.prototype


在JavaScript中陣列是另一種物件機制

var arr = [,1,3,,,4,7,]   //稀鬆陣列,其length為7

var arr1 = new Array(5)  //[,,,,,,]    new Array(1,2,,,3)會報錯 new Array(5.2)報錯  new Array('a')可以,陣列長度為1


push方法和unshift方法 

繼承自Array的原型裡的方法

-->返回值,都是執行了方法以後陣列的長度

unshift在陣列第一位前面加元素

Array.prototype.myPush = function(){

      for(var i=0;i<arguments.length;i++){

                   this[this.length] = arguments[i];

      }

     return this.length

}

pop方法 和 shift方法

pop刪除陣列最後一位,返回被刪除元素,不接收引數

shift刪除陣列第一位,並返回被刪除元素,同不接收引數

reverse方法

倒序

splice方法

引數(開始項的下標,剪下長度,剪下以後最後一位開始新增資料)

var arr = ['a', 'b', 'c', 'd'];

arr.splice(1, 2, 1,2,3,4,5)  //arr變為['a', 1, 2, 3, 4, 5, 'd']

var arr = ['a', 'b', 'c', 'e'];

arr.splice(3, 0, 'd')   //arr變為['a', 'b', 'c', 'd', 'e'];

arr.splice(-1,0,'d')同樣可以實現,陣列從後往前數下標從-1開始

陣列排序 sort()

sort()返回結果是排序以後的陣列

sort->sort本身按照ascii碼來排序

傳引數以後可以實現實際排序

1,引數a,b

2,返回值:1)負值,a就排前面

                   2)正值,b就排前面

                   3)0     保持不動

sort(function(a, b){

    if(a > b){return 1}        ====》改造升序   直接return a-b;  降序:return b-a;

    else return -1

})

//隨機排序

var arr = [1,2,3,4,5,6];

//Math.random()  ->0-1開區間

arr.sort(function(a, b){

    var rand = Math.random();

    if(rand - 0.5 > 0) return 1;  // ====>return Math.random()-0.5

    else return -1

})


總結:修改原陣列:push/unshift/pop/shift/splice/sort/reverse


相關文章