目录
How to add Elements to an Array in TypeScript
在 TypeScript 中向数组添加元素
在 TypeScript 中向数组添加元素:
- 正确输入数组,例如
const arr: number[] = []
. push()
在数组上调用方法,例如arr.push(myValue)
.- 该
push
方法将一个或多个元素添加到数组的末尾。
const arr: number[] = []; // ✅ Add to end of array arr.push(2); // ✅ Add to beginning of array arr.unshift(1); console.log(arr); // 👉️ [1, 2] // ✅ Merge arrays const result = arr.concat([3, 4]); console.log(result); // 👉️ [1, 2, 3, 4] // ✅ Merge arrays with spread (...) const merged = [...arr, ...[3, 4]]; console.log(merged); // 👉️ [1, 2, 3, 4] // ✅ Add one or more elements at specific index const arr2: string[] = ['a', 'd', 'e']; arr2.splice(1, 0, 'b', 'c'); // 👇️ ['a', 'b', 'c', 'd', 'e'] console.log(arr2);
第一个示例演示如何使用Array.push
方法将元素添加到 TypeScript 数组的末尾
。
该push
方法采用一个或多个值并将它们添加到数组的末尾。
const arr: number[] = []; arr.push(1, 2, 3); console.log(arr); // 👉️ [1, 2, 3]
当你用值声明一个数组时,TypeScript 能够推断出数组的类型。
// 👇️ const arr: number[] const arr = [1, 2, 3];
TypeScript 能够推断出数组的类型是number[]
. 这意味着数组只包含类型的元素,number
您只能
number
向数组添加元素。
如果你声明一个空数组并且没有显式地键入它,TypeScript 不知道数组将包含什么类型的元素,所以它给它一个类型
any[]
。
// 👇️ const arr: any[] const arr = [];
这意味着您可以将any
类型的元素添加到数组中。
应该避免这种行为,因为它会禁用类型检查。
在不太可能出现的情况下,您有一个混合数组,例如 ofnumbers
和
strings
,在键入数组时使用
联合类型
。
const arr: (number | string)[] = [1, 'a']; arr.push(2, 'b'); console.log(arr); // 👉️ [1, 'a', 2, 'b']
这是一个如何键入对象数组的示例。
const arr: { name: string; age: number }[] = []; arr.push({ name: 'Tom', age: 30 }); console.log(arr); // 👉️ [{name: 'Tom', age: 30}]
如果需要在特定索引处添加或更改数组元素,请使用括号表示法。
const arr: string[] = ['hello']; arr[1] = 'world'; console.log(arr); // 👉️ ['hello', 'world']
如果指定索引处的数组元素不存在,则向数组添加一个元素,否则更新特定索引处元素的值。
在 TypeScript 中将元素添加到数组的开头
在 TypeScript 中将元素添加到数组的开头:
- 正确输入数组,例如
const arr: number[] = []
. unshift()
在数组上调用方法,例如arr.unshift(myValue)
.- 该
unshift
方法将一个或多个元素添加到数组的开头。
const arr: number[] = [3, 4]; arr.unshift(1, 2); console.log(arr); // 👉️ [1, 2, 3, 4]
Array.unshift方法与
方法
相反push()
。
它不是将一个或多个元素添加到末尾,而是将它们添加到数组的开头。
在 TypeScript 中合并数组
另一种向数组添加元素的常用方法是合并多个数组。
使用扩展语法 (…) 合并 TypeScript 中的两个数组,例如
const merged = [...[1, 2], ...[3, 4]];
. 扩展语法 (…) 将数组的值解包到一个新数组中并保留元素的顺序。
// ✅ Merge arrays with spread (...) const merged = [...[1, 2], ...[3, 4]]; console.log(merged); // 👉️ [1, 2, 3, 4]
我们2
使用
扩展语法 (…)将数组解压缩为第三个数组。
使用扩展语法 (…) 时,将保留解压缩数组的顺序。
const merged = [...[3, 4], ...[1, 2]]; console.log(merged); // 👉️ [3, 4, 1, 2]
您可能还会看到concat
用于合并两个或多个数组的方法。
const result = [1, 2].concat([3, 4], [5, 6]); console.log(result); // 👉️ [1, 2, 3, 4, 5, 6]
根据我的经验,
Array.concat
方法不如传播语法 (…) 那样常用。
在 TypeScript 中的索引处向数组添加一个或多个元素
使用该splice()
方法将一个或多个元素添加到特定索引处的数组,例如arr.splice(1, 0, 'b', 'c')
. 该splice
方法通过删除、替换或向数组添加新元素来更改原始数组的内容。
const arr: string[] = ['a', 'd', 'e']; arr.splice(1, 0, 'b', 'c'); // 👇️ ['a', 'b', 'c', 'd', 'e'] console.log(arr);
我们将以下参数传递给该splice
方法:
- start index – 开始更改数组的索引
- delete count – 我们要从数组中删除多少个元素,从起始索引开始
- 要添加到数组的一个或多个值,从起始索引开始
我们不想删除任何元素,我们0
作为删除计数传递。
上面的代码片段:
- 在索引处开始更改数组
1
0
从数组中移除元素- 将字符串
b
和添加c
到数组