Array.prototype.remove=function(from,to){
                 var rest=this.slice((to||from)+1||this.length);
                 this.length=from<0?this.length+from:from;
                 return this.push.apply(this,rest);
}
第二行代码的slice参数不是很理解,有没有人指导下啊,拜服了呵呵!!!!

解决方案 »

  1.   

    slice是返回数组中的一段 返回值是个数组类型
    比如
    var arr = [1,2,3,4,5];
    var cc = arr.slice(1,3);//cc就是[2,3] 
    var dd = arr.slice(1);//dd就是[2,3,4,5]
    和slice对应的方法是splice 
    他俩的区别是slice操作完原数组后不改变原数组 而splice直接就更改了原数组
      

  2.   

    这个函数是想要删除数组的某一段,返回剩下的数组。var rest=this.slice((to||from)+1||this.length);slice的作用是返回选定的元素,所以上面slice返回的是从remove掉的元素的下一个元素起直到数组末尾的元素。
      

  3.   

    可能是我说的不是很明白。我的意思是(to||from)+1||this.length这句话不是很明白,slice函数我还是比较明白的。呵呵
      

  4.   

    这句代码返回的是从remove掉的元素的下一个元素起直到数组末尾的元素。(to||from)+1||this.length)的意思是首先判断to是否为0,不为0的话to||from就等于to反之就等于from,那加1就是下一个位置,如果你把to取-1或者to取0而from取-1,那么(to||from)+1||this.length)就会等于this.length,这样你会remove掉整个数组。
      

  5.   

    挺难为你们了呵呵我很想知道写这段代码的人是怎么想到这种写法的,不知道他考虑过没有如果from>to会是什么样子呵呵,谢谢你了。