为了账号安全,请及时绑定邮箱和手机立即绑定

为什么从-2到-1不行?

<script type="text/javascript">
   var myarr1= ["我","爱","你"];
//   document.write(myarr1.slice(1,3));
   document.write(myarr1.slice(-2,-1));//显示的是一个爱字
</script>


正在回答

7 回答

http://img1.sycdn.imooc.com//57a9fb9100015ba507990332.jpg

这样的

1 回复 有任何疑惑可以回复我~
#1

Paul_Z 提问者

end不能为0,如果要首尾都为负数改怎么办?
2016-08-10 回复 有任何疑惑可以回复我~
#2

codergo 回复 Paul_Z 提问者

我觉得我画的图已经很清楚了,如果是负数,end取值就至少为-1,所以最后一个值始终无法slice(-x,-1)取得
2016-08-10 回复 有任何疑惑可以回复我~
#3

Paul_Z 提问者

非常感谢!
2016-08-11 回复 有任何疑惑可以回复我~

最佳答案是错的

slice(start,end),这里取的是从start到end,但是不包含end,也就是包含头不包含尾

在你的例子里,-2是“爱”字,-1是“你”字,包含头不包含尾,所以取的值是只有一个“爱”字

1 回复 有任何疑惑可以回复我~
#1

qq_水无声_03882251

解释的很对
2016-09-18 回复 有任何疑惑可以回复我~

end位置的字符对应参数不显示

就像

   var myarr1= ["我","爱","你"];

  document.write(myarr1.slice(0,3));

  document.write(myarr1.slice(0,2));

  结果为 

我,爱,你

我,爱

 值为负数,道理是一样的,只不过end处参数不能为0;

你可以先自己试试,纯属个人观点


0 回复 有任何疑惑可以回复我~
#1

Paul_Z 提问者

对,就是因为end不能为0,所以只能写成(-2)不能写成(-2,0),如果要首尾都为负数改怎么办?
2016-08-10 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//57a9f75f0001637b05160145.jpg

end如果是负数就是尾部开始算起,document.write(myarr1.slice(-2,-1))就是倒数第二个开始也就是"爱",倒数第一个是"你"结束,因为是负数,"你"在结束的后面,所以不会显示

个人见解,不知道这个解答是否正确.

0 回复 有任何疑惑可以回复我~

因为表示的都是位置 -2是爱  -1是你~~所以只会显示爱

0 回复 有任何疑惑可以回复我~

当然是只显示一个“爱”字。从倒数第二内容开始(包括倒数第二的内容),到标明的内容结束(注意:不包括标明的内容!),所以显示从“爱”开始,最后一个“你”不包括,那么就显示一个“爱”字。【你前面那条代码要是写的是 slice(1,2) 也显示一个“爱”字】

0 回复 有任何疑惑可以回复我~

可以呢吧 倒数第二个吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么从-2到-1不行?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信