对于array对象的slice函数,
返回一个数组的一段。(仍为数组)
arrayObj
必选项。一个 Array 对象。
start
必选项。arrayObj 中所指定的部分的开始元素是从零开始计算的下标。
end
可选项。arrayObj 中所指定的部分的结束元素是从零开始计算的下标。
slice 方法一直复制到 end 所指定的元素,但是不包括该元素。如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。如果省略 end ,那么 slice 方法将一直复制到 arrayObj 的结尾。如果 end 出现在 start 之前,不复制任何元素到新数组中。
var a;
a = new Array("a","b","c","d","e");
document.write(a.slice(0,3) + "<br>");
document.write(a.slice(-3,4) + "<br>");
document.write(a.slice(0,-1) + "<br>");
document.write(a.slice(1) + "<br>");
document.write(a.slice(4,3));
这个示例用到了数组(Array)对象的Slice(start,[end])方法,该方法返回一个新数组,包含了源函数从start到 end 所指定的元素,但是不包括end元素。
(1)a.slice(0,3);结果a,b,c
(2)如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4)。结果c,d
(3)如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度,比如a.slice(0,-1)。结果a,b,c,d
(4)如果省略 end ,那么 slice 方法将一直复制到源数组结尾,比如a.slice(1)。结果b,c,d,e
(5)如果 end 出现在 start 之前,不复制任何元素到新数组中,比如a.slice(4,3)。