merge
将多个数组合并成一个数组,可以选择去重。
基础用法
typescript
import { merge } from 'radash'
const array1 = [1, 2, 3]
const array2 = [4, 5, 6]
const array3 = [7, 8, 9]
const merged = merge(array1, array2, array3)
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
语法
typescript
function merge<T>(
...arrays: readonly T[][]
): T[]
参数
...arrays
(readonly T[][]): 要合并的数组,可以传入任意数量的数组
返回值
返回一个包含所有输入数组元素的合并数组。
示例
基本合并
typescript
import { merge } from 'radash'
const fruits = ['apple', 'banana']
const vegetables = ['carrot', 'lettuce']
const grains = ['rice', 'wheat']
const allFood = merge(fruits, vegetables, grains)
// ['apple', 'banana', 'carrot', 'lettuce', 'rice', 'wheat']
合并对象数组
typescript
import { merge } from 'radash'
const users1 = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
]
const users2 = [
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'Diana' }
]
const allUsers = merge(users1, users2)
// [
// { id: 1, name: 'Alice' },
// { id: 2, name: 'Bob' },
// { id: 3, name: 'Charlie' },
// { id: 4, name: 'Diana' }
// ]
合并不同类型的数组
typescript
import { merge } from 'radash'
const numbers = [1, 2, 3]
const strings = ['a', 'b', 'c']
const booleans = [true, false]
const mixed = merge(numbers, strings, booleans)
// [1, 2, 3, 'a', 'b', 'c', true, false]
合并空数组
typescript
import { merge } from 'radash'
const empty1: number[] = []
const empty2: number[] = []
const numbers = [1, 2, 3]
const result = merge(empty1, numbers, empty2)
// [1, 2, 3]
合并单个数组
typescript
import { merge } from 'radash'
const numbers = [1, 2, 3]
const result = merge(numbers)
// [1, 2, 3]
合并嵌套数组
typescript
import { merge } from 'radash'
const array1 = [[1, 2], [3, 4]]
const array2 = [[5, 6], [7, 8]]
const merged = merge(array1, array2)
// [[1, 2], [3, 4], [5, 6], [7, 8]]
与spread操作符对比
typescript
import { merge } from 'radash'
const array1 = [1, 2, 3]
const array2 = [4, 5, 6]
// 使用merge
const merged1 = merge(array1, array2)
// [1, 2, 3, 4, 5, 6]
// 使用spread操作符
const merged2 = [...array1, ...array2]
// [1, 2, 3, 4, 5, 6]
动态合并
typescript
import { merge } from 'radash'
function combineArrays<T>(...arrays: T[][]) {
return merge(...arrays)
}
const result = combineArrays(
[1, 2],
[3, 4],
[5, 6]
)
// [1, 2, 3, 4, 5, 6]
注意事项
- 保持原数组不变:
merge
不会修改原数组,而是返回新的数组 - 顺序: 合并后的数组按照输入数组的顺序排列
- 空数组处理: 空数组会被忽略,不会影响结果
- 性能: 时间复杂度为 O(n),其中 n 是所有数组的总长度
- 内存: 会创建新的数组,注意内存使用
与其他方法的区别
concat()
: 只能合并两个数组,需要链式调用spread操作符
: 功能相同,但语法不同merge()
: radash提供的更直观的API,支持多个数组
实际应用场景
- 数据整合: 合并来自不同来源的数据
- 配置合并: 合并多个配置数组
- API响应: 合并多个API调用的结果
- 文件处理: 合并多个文件的内容
- 缓存管理: 合并多个缓存数组