问答详情
源自:7-21 选定元素slice()

为什么-1 -2没有输出结果,不是从后面算起的吗?

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Array对象 </title>

<script type="text/javascript">

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

   document.write(myarr1.slice(-1,-2));

</script>

</head>

<body>

</body>

</html>


提问者:_慕慕_ 2019-07-09 11:33

个回答

  • grass_rt
    2019-07-10 14:08:26
    已采纳

    是参数的顺序造成的。arry.slice(start, end)函数中,start的位置小于end位置,而不是start的数值要小于end的数值。如果调整JS脚本如下:

    var myarr1 = ["我", "爱", "你"];
    document.write(myarr1.slice(-2, -1));

    则会输出结果为“你”。

    也就是说,arry.slice(start, end)函数中,start必须处于end位置之前。而题主程序中start=-1,end=-2,顺序正好颠倒。为了验证这一点,可以设计JS脚本如下:

    var myarr1 = ["我", "爱", "你"];
    document.write(myarr1.slice(3, 1));

    你是否也无法获得任何输出结果呢?

  • 番茄boy
    2020-11-12 10:08:38

    它这章节有些问题:

    原说明是:

    arrayObject.slice(start,end)

    但在我看来应该是:

    arrayObject.slice(start,length)

    第2个参数,应该是指定截取的长度,如果是end根本不符合它自己说的左闭右开

  • 慕木暮目
    2020-07-07 12:56:11

    <!DOCTYPE html>

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>Array对象 </title>

    <script type="text/javascript">

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

    //   document.write(myarr1.slice(1))

       document.write(myarr1.slice(-2))


    </script>

    </head>

    <body>

    </body>

    </html>


  • 慕移动5193967
    2020-01-14 19:00:16

    应该输出“ 爱”

  • 慕移动5193967
    2020-01-14 18:58:41

    http://img4.mukewang.com/5e1d9ecb0001e7de12690896.jpg 到底哪个说的对呢?