js数组

数组定义的方式:

  var arr=[1,2,3];

  var arr=new Array(1,2,3);

  var arr=new Array(5);//定义长度为5的数组(括号中放内容时,表示数组内添加的内容。括号内放的是数字,则表示定义数组长度)

清除数组方法:

  清除数组方法一:令数组长度为0.   即arr.length=0

  清除数组方法二:arr=[];重新赋一个空d数组

数组添加方法:

  arr.push('abc');//在数组后面添加元素,该方法有返回值,返回的是新的数组长度

  arr.unshift(0);//在数组前面添加元素,该方法有返回值,返回的是新的数组长度,但是IE6 IE7不支持unshift返回值

数组删除方法:

  arr.pop();//删除数组中的最后一个元素,返回值是被删除的最后一个元素值

  arr.shift();//删除数组中的第一个元素,返回值是被删除的第一个元素值,后面的元素会前移比当前索引1的位置。

  arr.splice(删除开始的位置索引值,删除的个数);//返回删除的元素值

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

        arr.splice(2);//返回 [4,5] 此时 arr=[1,2,3]

  delete arr[1];删除数组中的元素,与为该删除索引地方为其赋undefined值类似,不会改变数组长度length。也不会使删除后的元素前移位填充。

数组的替换:

  arr.splice(删除开始的位置索引值,删除的个数,‘替换的值’);//返回删除的元素值

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

      arr.splice(2,2,[1,2],8);//返回:[3,4];此时arr=[1,2,[1,2],8,5]

数组的添加:

  arr.splice(添加的位置索引值,0,‘添加的元素’,‘可以添加多个’);//0表示没有删除元素,所有返回值为空

返回指定数组的一个片段或者子数组:

  arr.slice();

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

    arr.slice(0,3);//返回[1,2,3]

    arr.slice(3);//返回[4,5]

    arr.slice(1,-1);//返回[2,3,4]  ----(-1表示从后往前数第一个,即倒数第一个)

    arr.slice(-3,-2);//返回[4]----(-3表示倒数第3个,-2表示倒数第二个)

小技巧:

可以利用这个方法实现数组中的元素前后交换:

  arr.unshift(arr.pop());

  arr.push(arr.shift());

数组去重:

方法一:

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

    for(var j=i+1;j<arr.length;j++){

      if(arr[i]==arr[j]){

        arr.splice(j,1);

        j--;

      }

    }

  }

 数组的连接:

  arr.concat();//创建并返回一个新数组

  例:

    var arr=[1,2,3]

    arr.concat(4,5);//返回:[1,2,3,4,5]

    arr.concat([4,5]);返回:[1,2,3,4,5]

    要把数组arr1与arr2连接:   arr1.concat(arr2);

    要把数组arr1,arr2,arr3 连接:  arr1.concat(arr2,arr3);

    arr.concat(4,[5,[6,7]]);//返回:[1,2,3,4,5[6,7]]   concat()不会递归扁平化数组的数组

 数组的反转:

  arr.reverse();

将字符串变为数组:

  arr.split('');

  例:

    var str='abcdef';

    alert(str.split(''));

    执行结果:a,b,c,d,e,f

数组变为字符串:

将数组中所有元素转变为字符串并连接在一起,返回最后生成的字符串:

  arr.join();

  例:var arr=[1,2,3]

    arr.join();//结果:1,2,3

    arr.join("");//结果:123

    arr.join(" ");//结果:1 2 3

    arr.join("-");//结果:1-2-3

数组的反转:

  arr.reverse();

  例:反转字符串:

   var str='abcdef';

   alert(str.split('').join(''));

数组的遍历:

  forEach()

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

  var sum=0;

  arr.forEach(function(value){

    sum+=value;

  });//结果sum=15

map():方法

  将调用的数组每个元素传递给指定函数,并返回一个数组,它包含该函数的返回值。不修改调用的数组

  例:a=[1,2,3];

    b=a.map(function(x){

      return x*x;

     });//结果b是[1,4,9]

  

原文地址:https://www.cnblogs.com/yuxingyoucan/p/5720384.html