Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
slice() 方法返回一个新的数组对象,这一对象是一个由 start 和 end 决定的原数组的浅拷贝(包括 start,不包括 end),其中 start 和 end 代表了数组元素的索引。原始数组不会被改变。
提取起始处的索引(从 0 开始),会转换为整数。
提取终止处的索引(从 0 开始),会转换为整数。slice() 会提取到但不包括 end 的位置。
一个含有被提取元素的新数组。
slice() 方法是一个复制方法。它不会改变 this,而是返回一个浅拷贝,其中包含了原始数组的一部分相同的元素。
slice() 方法会保留空槽。如果被切片的部分是稀疏的,则返回的数组也是稀疏的。
slice() 方法是通用的。它只要求 this 上有 length 属性和整数键属性。
在下例中,slice 从 myCar 创建了一个新数组 newCar。两个数组都包含了一个 myHonda 对象的引用。当 myHonda 的 color 属性改变为 purple,则两个数组中的对应元素都会随之改变。
上述代码输出:
slice() 方法会读取 this 对象的 length 属性,然后从 start 到 end 读取整数键属性,并将它们定义在一个新创建的数组中。
slice() 方法经常与 bind() 和 call() 一起使用,用于创建一个实用方法,将类数组对象转换为数组。
如果源数组是稀疏数组,slice() 方法返回的数组也会是稀疏数组。
| ECMAScript® 2027 Language Specification # sec-array.prototype.slice |
启用 JavaScript 以查看此浏览器兼容性表。