js中关于array的slice和sort方法(转自JavaEye)

1、array.slice(start, end) 方法:数组

     slice()是用来截取数组中的一部分,用它来复制数组,若是省略了end参数,则切分的数组包含从start开始到数组结束的全部元素。ide

如今要用它来复制数组,就一行:函数

var newArray=oldArray.slice(0); 


 

其余说明:编码

1. 若是 start 为负,将它做为 length + start处理,此处 length 为数组的长度,好比a.slice(-3,4),至关于a.slice(2,4)。spa

2. 若是 end 为负,就将它做为 length + end 处理,此处 length 为数组的长度,好比a.slice(0,-1)。code

3. 若是省略 end ,那么 slice 方法将一直复制到源数组结尾,好比a.slice(1)。若是 end 出如今 start 以前,不复制任何元素到新数组中,好比a.slice(4,3)。blog

4.对于字符串,也有slice(start,end)方法。排序

2、array.sort() 方法:字符串

默认的sort()按字符编码排序的:it

code1:

var testArray=[3,324,5345,6546,134,5654,665];
        testArray.sort();
        alert(testArray);

输出结果是:134  3  324  5345  5654  6546  665


按大小排序:

var testArray=[3,324,5345,6546,134,5654,665];
        testArray.sort(function(a,b){return a-b;});
        alert(testArray);

这里传递一个比较函数给sort,比较函数的逻辑是:若是两参数的差值小于0,则表示a必须出如今b前面,不然在b后面。输出结果是:

输出结果是:3  134  324  665  5345  5654  6546,


补充:对多维数组的排序:

var arr=[
             [2,1,55,4],
             [5,3,22,3],
             [1,2,77,2],
             [9,4,33,5],
          ];                 
alert("默认按第一列排\n"+arr.sort().join("\n"))  
alert("如今按第三列排\n"+arr.sort(function(left,right){return left[2]>right[2]?1:-1}).join("\n"))  
alert("如今按第三列倒排\n"+arr.sort(function(left,right){return left[2]>right[2]?-1:1}).join("\n"))

//说明:alert(arr.sort(function(left,right){return left>right?-1:1}))   //这里,sort方法经过参数函数的返回值 1或者-1来决定是顺排仍是倒排

相关文章
相关标签/搜索