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

来源:7-21 选定元素slice()

Paul_Z

2016-08-09 22:32

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


写回答 关注

7回答

  • codergo
    2016-08-09 23:49:56
    已采纳

    http://img.mukewang.com/57a9fb9100015ba507990332.jpg

    这样的

    Paul_Z

    非常感谢!

    2016-08-11 09:12:42

    共 3 条回复 >

  • 猫子0712
    2016-09-01 11:09:40

    最佳答案是错的

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

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

    qq_水无声...

    解释的很对

    2016-09-18 10:25:37

    共 1 条回复 >

  • Ray丶Kwok
    2016-08-09 23:52:24

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

    就像

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

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

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

      结果为 

    我,爱,你

    我,爱

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

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


    Paul_Z

    对,就是因为end不能为0,所以只能写成(-2)不能写成(-2,0),如果要首尾都为负数改怎么办?

    2016-08-10 09:45:20

    共 1 条回复 >

  • codergo
    2016-08-09 23:41:42

    http://img.mukewang.com/57a9f75f0001637b05160145.jpg

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

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

  • 鱼肉小叔3571015
    2016-08-09 23:36:26

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

  • YoloMonkey
    2016-08-09 23:29:48

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

  • 蓝梦DS123
    2016-08-09 23:17:31

    可以呢吧 倒数第二个吧

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468195 学习 · 21891 问题

查看课程

相似问题