JavaScript内置对象学习笔记-Array

2017-06-02  本文已影响0人  AlanLynn

Array.prototype.slice()

slice() 方法返回一个从开始到结束(不包括结束)的数组的一部分浅拷贝到一个新的数组对象。
原始数组不会发生改变。

语法

arr.slice()
arr.slice(start)
arr.slice(start,end)

参数说明

start 从索引开始位置开始计算起(0开始),如果参数为负数,那么就从原数组的倒数第几个开始提取,比如 arr.slice(-2),那么提取的是从倒数第二个元素到最后一个元素(包括最后一个元素)。
如果省略start,那么就从0开始提取。
end 在该索引结束元素提取(0开始),slice()会提取从startend的所有元素(包括start,不包括end);
如果省略end,那么会提取到最后一个元素,如果end大于数组长度,会提取到最后一个元素。

返回值

返回一个新的数组

描述

slice()不修改原数组,浅拷贝一份元素到一个新的数组。
1.如果该元素是一个对象引用,slice会拷贝这个对象的引用到新的数组中,两个元素同时对一个对象进行了引用,如果改变了被引用的对象,那么两个数组中的对象都会发生改变。
2.对于String、Number、Boolean(不是对象)来说,拷贝到了新数组中,二者不管那个发生了改变,都不会影响另外一个数组。
3.如果向两个数组任意一个添加了一个新元素,另一个不会受影响。

使用技巧

slice方法可以将一个类数组(Array-list)对象/集合转成一个数组,你只需要将该方法绑定到这个对象上就可以了
实例:

function list(){
  return [].slice.call(arguments);
}
let  l = list(1,2,3); //[1,2,3]
上一篇 下一篇

猜你喜欢

热点阅读