Skip to content

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]

注意事項

  1. 保持原數組不變: merge 不會修改原數組,而是返回新的數組
  2. 順序: 合並後的數組按照輸入數組的順序排列
  3. 空數組處理: 空數組會被忽略,不會影響結果
  4. 性能: 時間復雜度為 O(n),其中 n 是所有數組的總長度
  5. 內存: 會創建新的數組,注意內存使用

與其他方法的區別

  • concat(): 只能合並兩個數組,需要鏈式調用
  • spread操作符: 功能相同,但語法不同
  • merge(): radash提供的更直觀的API,支持多個數組

實際應用場景

  1. 數據整合: 合並來自不同來源的數據
  2. 配置合並: 合並多個配置數組
  3. API響應: 合並多個API調用的結果
  4. 文件處理: 合並多個文件的內容
  5. 緩存管理: 合並多個緩存數組

Released under the MIT License.