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

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

_慕慕_

2019-07-09 11:33

<!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>


写回答 关注

5回答

  • 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));

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

    大倪

    var myarr1 = ["我", "爱", "你"]; document.write(myarr1.slice(-2, -1)); 输出结果为“爱” 从 start 到 end (不包括该元素)的元素。从-2开始,到-1结束,包括-2(爱)不包括-1(你)

    2019-09-26 22:06:44

    共 2 条回复 >

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

    它这章节有些问题:

    原说明是:

    arrayObject.slice(start,end)

    但在我看来应该是:

    arrayObject.slice(start,length)

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

    番茄boy

    对不起,是我看错了,我看成了splice,搞错了,原章节没有问题 应该是跟substring相似

    2020-11-12 10:20:42

    共 1 条回复 >

  • 慕木暮目
    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 到底哪个说的对呢?

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题