TS 切片
2025年5月5日 · 332 字
1. slice()
方法
slice()
方法用于数组和字符串的切片;并且是浅显拷贝不修改原数组。
const fruits: string[] = ["apple", "banana", "orange", "grape", "mango"];
const sliceFruitsOne: string[] = fruits.slice(1, 3); // banana orange
console.log(sliceFruitsOne);
const sliceFruitsTwo: string[] = fruits.slice(1);
console.log(sliceFruitsTwo);
const sliceFruitsThree: string[] = fruits.slice(-3, -1);
console.log(sliceFruitsThree);
console.log(fruits); //原始字符未被修改
字符串切片:
const text: string = "Hello, World!";
const slicedText: string = text.slice(0, 5);
console.log(slicedText); // 输出: "Hello"
console.log(text.slice(7)); // 输出: "World!"
console.log(text.slice(-6)); // 输出: "World!"
console.log(text); // 原始字符串未被修改
2.splice()
方法
splice()
方法用于向数组中添加或删除元素,会修改原数组;
const numbers: number[] = [1, 2, 3, 4, 5, 6];
const removed: number[] = numbers.splice(1, 2); //第一个参数是索引,第二参数是删除的数量
console.log(removed);
console.log(numbers); //原数组被修改
numbers.splice(0, 2, 5.6, 100); //添加的元素类型要和原数组类型一样,从索引0开始插入2个元素
console.log(numbers);
3.数组解构赋值
TS 支持解构赋值来实现数组切片的效果,并且会根据数组类型推断变量的类型。
const colors: string[] = ["red", "green", "blue", "yellow"];
// 提取前两个元素
const [first, second]: string[] = colors;
console.log(first, second); // 输出: "red", "green"
// 提取剩余元素
const [head, ...rest]: string[] = colors;
console.log(rest); // 输出: ['green', 'blue', 'yellow']