这里有几种方法可以截取数组:
- 使用slice方法:
let arr = [1, 2, 3, 4, 5];
let part = arr.slice(0, 3); // 从索引0开始,到索引3结束但不包含索引3,即截取前3个元素
console.log(part); // [1, 2, 3] - 使用substr方法(只适用于字符串):
let str = "12345";
let part = str.substr(0, 3); // 截取从索引0开始到索引3的子字符串
console.log(part); // "123" - 使用splice方法:
let arr = [1, 2, 3, 4, 5];
let part = arr.splice(0, 3); // 在索引0位置删除3个元素
console.log(part); // [1, 2, 3]
console.log(arr); // [4, 5] - 使用扩展运算符和slice方法结合:
let arr = [1, 2, 3, 4, 5];
let part = [...arr.slice(0, 3)];
console.log(part); // [1, 2, 3] - 使用Array.from方法:
let arr = [1, 2, 3, 4, 5];
let part = Array.from(arr.slice(0, 3));
console.log(part); // [1, 2, 3]
其中:
slice是不改变原数组,返回一个新的数组片段。
splice会改变原数组。
扩展运算符和Array.from可以将数组片段转换成一个新的数组实例。
所以在需要截取数组的场景中,slice方法用得最多。