<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
slice()这个函数是选取低几个开始到第几个结束,
整个数组从零开始,其中最后结束的那个不会选取。
2,4 就表示从第三个元素开始取,第三个为3,
取到第五个之前,第四个为5,所以结果3,4
Array.slice(start,end)
首先解析定义:start是起始下标(显示当前元素),end是终止下标(不会显示当前元素),
start,end若为正数则是从左数起的(0开始计数),若是负数则是从右边数起的(从-1开始计数),若两者设定的值不能构成区间则不会显示元素
我回答是错误的,不好意思
数组中从0位开始slice(2,4)就是数组中从0开始数到的第2位和第4位,分别为3,5
slice(star,end)
slice 方法返回一个 Array 对象,其中包含了 arrayObj 的指定部分。
slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果end 值为负,那就说明 end 是从 arrayObj 结尾计算的偏移量。此外,它不是从零开始计数的。如果省略了这个值,那么 slice 方法将一直复制到 arrayObj 的结尾。
在下面这个例子中,除了最后一个元素之外,myArray 中所有的元素都被复制到 newArray 中:
newArray = myArray.slice(0, -1)
如果一个对象引用被从
arrayObj 复制到结果中,结果中的该对象引用仍然指向同一个对象。对该对象的改变将被同时反映在两个数组上。