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

选定元素Slice

<script type="text/javascript">

  var myarr = new Array(1,2,3,4,5,6);

  document.write(myarr.slice(2,4) + "<br>");

</script>

为什么运行结果是3,4而不是3,5

提问者:呢绒 2016-07-14 16:05

个回答

  • 愤怒的罐头3646269
    2016-07-14 16:31:00
    已采纳

    slice()这个函数是选取低几个开始到第几个结束,

    整个数组从零开始,其中最后结束的那个不会选取。

    2,4 就表示从第三个元素开始取,第三个为3,

    取到第五个之前,第四个为5,所以结果3,4

  • 慕粉3541378
    2016-07-14 19:06:38

    Array.slice(start,end)

    首先解析定义:start是起始下标(显示当前元素),end是终止下标(不会显示当前元素),

    start,end若为正数则是从左数起的(0开始计数),若是负数则是从右边数起的(从-1开始计数),若两者设定的值不能构成区间则不会显示元素

  • 慕函数3951841
    2016-07-14 17:30:28

    我回答是错误的,不好意思

  • 慕函数3951841
    2016-07-14 17:25:23

    数组中从0位开始slice(2,4)就是数组中从0开始数到的第2位和第4位,分别为3,5

  • TimzShiver
    2016-07-14 17:08:12

    slice(star,end)

    slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。

    slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果end 值为负,那就说明 end 是从 arrayObj 结尾计算的偏移量。此外,它不是从零开始计数的。如果省略了这个值,那么 slice 方法将一直复制到 arrayObj 的结尾。

    在下面这个例子中,除了最后一个元素之外,myArray 中所有的元素都被复制到 newArray 中:

    newArray = myArray.slice(0, -1)
    如果一个对象引用被从 arrayObj 复制到结果中,结果中的该对象引用仍然指向同一个对象。对该对象的改变将被同时反映在两个数组上。