数组 javaScript权威指南笔记

时间:2022-08-27 08:14:49

创建数组

  var a=[1,2,3,4]

  var arr=new Array()

  var arr=new Array(10);//创建长度为10的数组

    var arr=new Array(1,2,3,4,5,6);//创建数组

              arr.length==6;

数组的删除delete  var a=[1,2,3];

  delete a[0];

  1 in a   //false,

  a.length //3,delete操作并不会影响数组的长度

数组的遍历

  for/in    forEach

    var a=[1,2,3];

    var b=0;

    a.forEach(function(x){

      b+=x;//相加

    })

数组的方法

  Array.jion();//将所有的元素转换为字符串并连接在一起,默认逗号连接,有一个参数,可以修改连接的样式

  Array.reverse();//将数组反向排序

  Array.sort();//将数组排序后并返回排序后的数组,如果不带参数,默认字母表顺序,有参数根据回调函数的返回值来确认顺序

    var a=[33,4,1111,222];

    a.sort();//1111,222,33,4;

    a.sort(function(a,b){

      return a-b;//4,33,222,1111

    });

    a.sort(function(){

      return b-a;//1111,222,33,4

    })

  Array.concat();//连接数组

    var a=[1,2,3];

    a.concat(4,5);//[1,2,3,4,5]

    a.concat([4,5]);//[1,2,3,4,5]

    a.concat([4,5],[6,7]);//[1,2,3,4,5,6,7]

    a.concat([4,[5,[6,7]);//[1,2,3,4,5,[6,7]]

  Array.slice();返回指定数组的片段

    var a=[1,2,3,4,5];

    a.slice(0,3);//[1,2,3,4];

    a.slice(3);//[4,5];

    a.slice(1,-1);//[2,3,4];

    a.slice(-3,-2);//[3]

  Array.splice();splice()会修改数组,第一个参数起始点,第二个参数删除的个数,之后的参数是插入的元素,插入元素的起始点就是第一个参数,注意,插入的数组是数组本身,不是里面的元素

  Array.push()和Array.pop();push在尾部添加元素,pop在尾部删除元素,修改原来的数组

  Array.unshift()和Array.shift();unshift在头部添加元素,shift在头部删除元素,修改原来的数组

  Array.toString()和Array.toLocalString();转换为字符串

ES5中数组的方法

  forEach()方法

  map()方法

    var a=[1,2,3];

    b=a.map(function(x){

      return x*x;//b是[1,4,9]

    })

  filter()

    var a=[5,4,3,2,1];

    b=a.filter(function(x){

      return x<3;//[2,1]

    })

    var a=[5,4,3,2,1];

    b=a.filter(function(x,i){

      return i%2==0;//[5,3,1],i是filter的第二个参数,他表示的是数组的下标,还有第三个参数当期元素属于数组的对象

    })

  every()和some();是数组的逻辑判断

    var a=[5,4,3,2,1];

    b=a.every(function(x){

 

      return x<10;//true;

 

    })

     var a=[5,4,3,2,1];

    b=a.some(function(x){

 

      return x%2===0;//false;

 

    })

  reduce()和reduceRight()

    var a=[5,4,3,2,1];

    b=a.reduce(function(x,y){

 

      return x+y;//数组求和

 

    },0)

    b=a.reduce(function(x,y){

 

 

      return x*y;//数组求积

 

 

 

    },1)

    b=a.reduce(function(x,y){

 

      return x>y?x:y;//求最小值

 

    },1)

    reduce()//两各参数,第一个参数执行函数,第二个参数可选初始值,第一次执行函数时,初始值作为函数的第一个参数,以后执行函数返回的值作为函数第一个参数

    reduceRight()和reduce()一样,执行从最后一个元素开始执行

  indexOf()和lastindexOf;搜索数组的指定的元素,如果找到返回下标,如果没找到返回-1

数组的类型

  Array.isArray([]);//true

  Array.isArray([]);//false