javascript:数组总结(一)

数组

建立数组体式格局

数组字面量体式格局

  var a = [];
  var a = [,,];(假如省略数组直接量的某个值,省略的元素将被给予undefined值)
  a// [undefined × 2](元素个数=逗号个数)

兼容性:IE8以及更早版本中也可能会建立包括3项的数组。因为IE的完成与其他浏览器不一致,因而强烈建议不要运用上述写法

挪用组织函数Array()

  var a = new Array();
  var a = new Array(10);//10代表数组的长度
  var a = new Array('10');//初始化化数组,数组长度为1      

数组读和写的体式格局

a[a.length-1]//接见数组末了一项

a[100] = 0//这时候数组的长度为100,没有初始化的默许值为undefined

数组要领

1.栈要领(落后先出)

push()=>吸收/恣意数目的参数/,把它们逐步增加到数组/末端/,并返回修正后/数组的长度/(落后)
pop()=>数组末端移除/末了一项/,削减数组的length值,然后返回/移除的项/(先出)

2.行列要领(先进先出)

unshift()=>吸收恣意数目的参数,把它们逐步增加到数组/前端/,并返回修正后/数组的长度/(先进)
shift()=>移除数组中的/第一个项/,削减数组的length值,并返回/移除的项/(先出)

3.join()

一切元素都转化为”字符串“并衔接在一起

             var a = [1,2,3];
             a.join();//"1,2,3"
             a.join('');//"123"
             a.join('-');//"1-2-3"

注重:假如不给join()要领传入任何值,或许给它传入undefined,则运用逗号作为分隔符。假如数组中某一项的值为null或undefined,挪用要领后,以空字符串示意。

4.slice()

不会修正原数组,返回子数组(1个或2个参数,前闭后开[ )),猎取子数组

   
    

             var a = [1,2,3,4,5];
             a.slice(0,3);//[1, 2, 3]
             a.slice(3);//[4, 5]
             a.slice(-3,-1);//[3, 4]
             a.slice(-10);//[1, 2, 3, 4, 5]

5.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[1, 2, 3](a未转变)
             a.concat(4,[5,[6,7]]);//[1, 2, 3, 4, 5,[6,7]] 
           

6.sort()和reverse()

sort()

默许状况下sort()要领按升序分列数组项,sort()要领会挪用每一个数组项的toString()转型要领,然后比较获得的字符串,纵然数组中的每一项都是数值,sort()要领比较的也是字符串。
因而sort()要领能够吸收一个比较函数作为参数,以便我们指定谁人位置位于谁人位置前面。比较函数吸收两个参数,假如第一个参数位于第二个之前则返回一个负数,假如两个参数相称则返回0,假如第一个参数位于第二个参数以后则返回一个正数。因为比较函数经由过程返回一个小于0、即是0或大于0的值来影响排序效果,因而减法操纵就能够恰当的处置惩罚一切状况。

重排序要领(默许升序<0)==>
a.sort(function(value1,value2){return value1-value2})

      

            var a = ['ab','bc','abc'];
            a.sort()//['ab','abc','bc'];
          --------------------------------------------
            var a = [2,20,3];
            a.sort()//[2, 20, 3](20转换为字符串) 
          --------------------------------------------
            var a = ['ant','Bug','cat','Dog'];
            a.sort()//["Bug", "Dog", "ant", "cat"](大写字母排前面)
            a.sort(function(a,b){a.toLowerCase()<b.toLowerCase()})//["ant", "Bug", "cat", "Dog"]

reverse(): 反转数组项的递次

7.splice()

数组中插进去或删除元素的通用要领,参数可1个,2个或许多个(第一个参数指定了肇端位置[,第二个参数指定了应从数组中删除元素个数,背面的指定了需插进去元素),返回一个由删除元素构成的数组

第一个参数指定肇端位置
第二个参数指定要删除的项数
第三个以及背面的参数要插进去的项

删除

             var a = [1,2,3,4,5,6,7,8];
             a.splice(4);//[5, 6, 7, 8]
             a.splice(1,1);//[2]

插进去

             a//[1, 3, 4]
             a.splice(1,0,'aa','bb');
             a//[1, "aa", "bb", 3, 4];

替代

var a = [0,1,2]
a.splice(1,1,'aa');//[1]
a//[0,'aa',2]
    原文作者:Murphywuwu
    原文地址: https://segmentfault.com/a/1190000002957308
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞