重温javascript---方法(array)

来源:互联网 发布:虚荣 vgpro数据不准 编辑:程序博客网 时间:2024/06/10 23:51

前两天去面试,很多都问到了js中处理数组的问题,当时本人脑子一热就是各种循环,额,每次面试官都问我有没有更好的方法,然后,然后就没有然后了。
js中提供的方法其实很多,长时间不用就会被丢到南海晒太阳了,于是自己也快被丢到南海晒太阳去了……

Array

  • array.concat(item…)
    concat方法会产生一个新数组,包含一份array的浅复制(shallow copy)并把一个或多个参数item附加在其后。
    var a=[1,2,3];    var b=[4,5,6];    var c= a.concat(b,7,8);    alert(c);//结果为:1,2,3,4,5,6,7,8
  • array.join(separator)
    join方法是把一个array构造成一个字符串。它是用一个separator分隔符将array中的每个元素连接在一起,默认的连接符是”,”。我们也可以使用空字符串作为连接符。
    var a=[1,2,3];    var b=[4,5,6];    var c= a.concat(b,7,8);    var d=c.join("");    alert(d);//结果为  12345678
  • array.pop() 和array.push(item…)
    这里牵扯到栈的概念,我们可以把栈比作是一口井,当我们向井里放东西的时候,肯定是从上面运到下面直到堆到井口。当我们从井里取东西的时候,肯定是从井口开始取,直到取到井底。这是一个“先进后出,后进先出”的方式。
    array.pop()和array.push(item…)这两个方法就可以使数组像井一样的工作,pop方法已出array中的最后一个元素并且返回该元素。如果array是empty,则返回undefinded。push方法是把一个或者多个参数item附加到一个数组的尾部,和concat不同的是,它会修改array,如果参数是一个数组,它会把这个数组作为单个元素添加到数组中,并且修改这个array的新长度值。
    var a=[1,2,3];    var b=[4,5,6];    var c= a.concat(b,7,8);     //pop()方法 和push()方法     var e= c.pop();    alert(e);//结果是 8    var f=['a','b','c'];     var g= f.push(a,b);    alert(f);//结果是a,b,c,1,2,3,4,5,6    alert(g);    //结果 5 在这里注意 push方法返回的是新数组的长度值
  • array.reverse()
    reverse方法反转array里的元素顺序,并且返回array本身。
var a=[1,2,3];var b=a.reverse();alert(a);//结果   3,2,1alert(b);//结果    3,2,1
  • array.shift()
    shift方法移除数组的第一个元素并返回该元素。若这个数组是空的,则返回undefined。
var a=[1,2,3];var b=a.shift();alert(a);//结果  2,3alert(b);//结果  1
  • array.slice(start,end)
    slice方法对array中的一段做浅复制,从array[start]开始,复制到array[end]结束。end参数是可选的,默认是该数组的长度。
    如果两个参数中任一个是负数,则数组的长度会和它们相加。如果start大于等于数组的长度,结果会是一个新的空数组。
    var a=[1,2,3,4,5];    var b= a.slice(1,3);    var c= a.slice(1);    var d= a.slice(-2,3);    var e= a.slice(6,9);    alert(b);//结果  2,3    alert(c);//结果  2,3,4,5    console.log(d);//结果 []     console.log(e);//结果 []
  • array.sort(comparefn)
    sort方法对array中的内容进行排序。不过在给数字排序时需要使用比较函数。比较函数需要接受两个参数,如果这两个参数相等就返回0,如果第一个参数应该排列在前面则返回一个负值,相反,如果第二个参数应该排列在前面则返回一个正数。
var a=[20,35,21,5,15,39,90,0];var b=a.sort();alert(a);//结果  0,15,20,21,35,39,5,90alert(b);//结果  0,15,20,21,35,39,5,90

上面的数字排序并没有完全正确,试试下面的方法

var a=[20,35,21,5,15,39,90,0];var b=a.sort(function(n,s){    return n-s;})alert(b);//结果  0,5,15,20,21,35,39,90

上面的这个函数可以使数字正确排序了。更多的函数排序方法以后再说。

  • array.splice(start,deleteCount,item…)
    splice方法从数组中移除一个或者多个元素,并用新的item代替它们。第一个参数start是从数组要移除的元素的起始位置,第二个参数就是要移除元素的个数,剩下如果还有的参数就是替换的元素。它返回一个包括被移除的元素的数组。
var a=[0,1,2,3,4,5,6];var b=a.splice(2,2,3,4,5);//a是 0,1,3,4,5,4,5,6var c=a.splice(2,2);alert(b);//结果  2,3alert(c);//结果  3,4alert(a);//结果  0,1,5,4,5,6

不要将splice方法和slice方法弄混,slice方法是获取数组的指定位置的值,而splice方法是移除指定位置的值并且返回的是移除的数值。

  • array.unshift(item….)
    unshift方法像push方法用来把元素添加到数组中,但是它将item的元素插入到数组的头部而不是尾部,它的返回值是数组的新长度。
var a=[1,2,3,4];var b=a.unshift(5,6,7);alert(a);//结果  5,6,7,1,2,3,4alert(b);//结果   7

上面的方法就是array常用的方法,其他的一些方法会很快总结。

0 0