JavaScript数组(一)

138 阅读2分钟

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