slice()
方法不会改变原始数组,而是返回一个浅复制了原数组中的元素的一个新数组。原数组的元素会按照以下规则拷贝:
- 如果该元素是个对象引用(不是实际的对象),
slice()
会拷贝这个对象引用到新的数组里。 - 对于字符串、数字及布尔值来说(不是
String
、Number
或者Boolean
对象),slice()
会拷贝这些值到新的数组里。
如果被引用的对象发生改变,则新的和原来的数组中的这个元素也会发生改变。在别的数组里修改这些字符串或数字或是布尔值,将不会影响另一个数组。如果向两个数组任一中添加了新元素,则另一个不会受到影响。
slice()
方法不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。原数组的元素会按照以下规则拷贝:
- 如果该元素是个对象引用(不是实际的对象),
slice()
会拷贝这个对象引用到新的数组里。
slice()
方法通过索引位置获取新的数组,该方法不会修改原数组,只是返回一个新的子数组。用法如下:
arrayObj.slice(start, end)
arrayObj
- 原始数组;start
- 必填;设定新数组的起始位置;如果是负数,则表示从数组尾部开始算起(-1 指最后一个元素,-2 指倒数第二个)。end
- 可选;返回新数组的结束位置;如果未指定该参数,则切分的数组包含从起始索引号到数组结束的所有元素。
slice()
是指定在一个数组中的元素创建一个新的数组,即原数组不会变。根据规范,slice()需要两个参数,起点和终点。
以下是 slice()
方法的一些优缺点:
优点:
slice()
方法不会改变原始数组,可用于防止意外修改原始数据。- 可以从数组中选择需要的部分,而不必复制整个数组。
缺点:
slice()
方法返回的是一个新的数组,因此当处理大量数据时,可能会占用大量内存。- 如果数组中包含对象,则新数组中的对象仍然与原始数组中的对象引用相同。如果对象被修改,则两个数组中的对象都会发生更改。