ES6中的数组Slice方法用于从一个数组中返回一部分元素,返回的新数组包含从原数组的开始位置到结束位置(不包括结束位置)的元素。
使用方法
- slice()方法可以接受一个参数或两个参数,第一个参数表示开始位置,第二个参数表示结束位置,但不包括结束位置。
- 如果只传入一个参数,表示从原数组的开始位置到该参数指定位置,但不包括该参数指定位置。
- 如果不传参数,则表示从原数组的开始位置到结束位置,返回原数组的一个浅拷贝,即返回一个新数组,但是新数组和原数组的元素指向的是同一个对象。
let arr = [1, 2, 3, 4, 5]; // 传入两个参数,表示从原数组的开始位置到结束位置(不包括结束位置) let newArr = arr.slice(1, 3); // [2, 3] // 传入一个参数,表示从原数组的开始位置到该参数指定位置,但不包括该参数指定位置 let newArr2 = arr.slice(2); // [3, 4, 5] // 不传参数,表示从原数组的开始位置到结束位置,返回原数组的一个浅拷贝 let newArr3 = arr.slice(); // [1, 2, 3, 4, 5]
slice()方法返回的是一个新数组,新数组的元素和原数组的元素指向的是同一个对象,如果修改新数组的元素,也会影响原数组的元素。
let arr = [1, 2, 3, 4, 5]; let newArr = arr.slice(); newArr[0] = 10; console.log(arr); // [1, 2, 3, 4, 5] console.log(newArr); // [10, 2, 3, 4, 5]
slice()方法也可以用于字符串,它可以用于从字符串中提取子字符串。
let str = 'hello world'; let newStr = str.slice(3, 7); console.log(newStr); // 'lo w'