點燈坊

失くすものさえない今が強くなるチャンスよ

使用 zip() 將兩個 Array 合併成 Array Pair

Sam Xiao's Avatar 2020-01-06

zip() 為 FP 代表性 Function,可直接將兩個 Array 合併成 Array Pair。

Version

Ramda 0.27.1

zip()

import { zip } from 'ramda'

let data1 = [1, 2, 3]
let data2 = [2, 4, 6]

let f = zip

f (data1) (data2) // ?

zip() 可將兩個 Array 合併成 Array Pair。

zip()
[a] → [b] → [[a,b]]
將兩個 Array 合併成 Array Pair

[a]:data 為 Array

[b] :data 為 Array

[[a,b]]:回傳為 Array Pair

zip000

import { zip } from 'ramda'

let data1 = [1, 2, 3]
let data2 = [2, 4, 6, 8]

let f = zip

f (data1) (data2) // ?

若兩個 Array 長度不同,將以較短的 Array 為準。

zip001

String

import { zip } from 'ramda'

let data1 = 'dog'
let data2 = 'rabbit'

let f = zip

f (data1) (data2) // ?

zip() 也能用在 String,但實務上較少使用。

zip002

Different Type

import { zip } from 'ramda'

let data1 = ['a', 'b', 'c']
let data2 = [1, 2, 3]

let f = zip

f (data1) (data2) // ?

兩個 Array 也可使用不同型別。

zip003

Conclusion

  • 若需將兩個 Array 合併配對,zip() 提供了最基本的合併配對方式

Reference

Ramda, zip()