js里面数组slice参数的问题

彩票虫虫 2011-10-22 08:27:24
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参数不是很理解,有没有人指导下啊,拜服了呵呵!!!!
...全文
641 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
彩票虫虫 2011-10-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 legend1988 的回复:]

引用 4 楼 xingyue425 的回复:

引用 1 楼 fanchuanzhidu 的回复:

slice是返回数组中的一段 返回值是个数组类型
比如
JScript code
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]
……
[/Quote]
挺难为你们了呵呵我很想知道写这段代码的人是怎么想到这种写法的,不知道他考虑过没有如果from>to会是什么样子呵呵,谢谢你了。
Legend1988 2011-10-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xingyue425 的回复:]

引用 1 楼 fanchuanzhidu 的回复:

slice是返回数组中的一段 返回值是个数组类型
比如
JScript code
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
他俩的区……
[/Quote]
这句代码返回的是从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掉整个数组。
jayrao5566 2011-10-22
  • 打赏
  • 举报
回复
楼上2位正解..
Legend1988 2011-10-22
  • 打赏
  • 举报
回复
这个函数是想要删除数组的某一段,返回剩下的数组。

var rest=this.slice((to||from)+1||this.length);

slice的作用是返回选定的元素,所以上面slice返回的是从remove掉的元素的下一个元素起直到数组末尾的元素。
豆虫 2011-10-22
  • 打赏
  • 举报
回复
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直接就更改了原数组
彩票虫虫 2011-10-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fanchuanzhidu 的回复:]

slice是返回数组中的一段 返回值是个数组类型
比如
JScript code
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直接……
[/Quote]
可能是我说的不是很明白。我的意思是(to||from)+1||this.length这句话不是很明白,slice函数我还是比较明白的。呵呵

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧