3、数组截取
3.1. slice方法
slice(start,end):截取从 start 到 end (不包括该元素)中的元素,返回一个新的数组。
3.1. 无参数表示返回当前数组的一个副本,默认start为0,end为字符串长度length。
var arr = ['1','2','3'];
var newArr = arr.slice();
console.log(arr); // ['1','2','3']
console.log(newArr); // ['1','2','3']
console.log(newArr === arr); // false
3.2. 只有一个参数,则该参数为start值,end默认为字符串长度length。
var arr = ['1','2','3'];
var newArr = arr.slice(1);
console.log(arr); // ['1','2','3']
console.log(newArr); // ['2','3']
3.3. 两个参数,从start到end(不包括end下标的元素)。
var arr = ['1','2','3','4','5'];
var newArr = arr.slice(1,3);
console.log(arr); // ['1','2','3','4','5']
console.log(newArr); // ['2','3']
3.4. 参数为负数,则规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
var arr = ['1','2','3','4','5'];
var newArr1 = arr.slice(-2); // 相当于arr.slice(arr.length + (-2)) -> arr.slice(3)
var newArr2 = arr.slice(0, -2); // 相当于arr.slice(0, arr.length + (-2)) -> arr.slice(0,3)
var newArr3 = arr.slice(-4,-2); // 相当于arr.slice(arr.length + (-4), arr.length + (-2)) -> arr.slice(1,3)
console.log(arr); // ['1','2','3','4','5']
console.log(newArr1); // ['4','5']
console.log(newArr2); // ['1','2','3']
console.log(newArr3); // ['2','3']
3.5. start参数大于等于数组长度,不管是否有end参数,结果返回空数组。
var arr = ['1','2','3','4','5'];
var newArr1 = arr.slice(5); // arr长度为5,start === arr.length
var newArr2 = arr.slice(6); // arr长度为5 start > arr.length
var newArr3 = arr.slice(5,1); // arr长度为5 start === arr.length
console.log(arr); // ['1','2','3','4','5']
console.log(newArr1); // []
console.log(newArr2); // []
console.log(newArr3); // []