Skip to content

leftJoin

输入两个数组leftright,返回left左连接right形成的数组,常用于合成包含相关联信息的对象数组,就像 SQL 那样。

此外,接收两个参数:leftKeyrightKey,它们是getByPath函数的字段路径,或者回调函数,用于提供区分元素的标识。merge用于生成返回的数组对象。

Added in v0.0.1

Usage

ts
import { leftJoin } from 'parsnip-kit'

const leftArray0 = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' },
]
const rightArray0 = [
  { id: 1, age: 25 },
  { id: 3, age: 30 },
]

leftJoin(
  leftArray0,
  rightArray0,
  (item) => item.id,
  (item) => item.id,
  (left, right) => ({ ...left, ...(right || {}) }),
) // [{ id: 1, name: 'Alice', age: 25 }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie', age: 30 }]


const leftArray1 = [
  { id: 1, info: { name: 'Alice', age: 25 } },
  { id: 2, info: { name: 'Bob', age: 35 } },
  { id: 3, info: { name: 'Charlie', age: 30 } },
]
const rightArray1 = [
  { name: 'Alice', experience: ['software engineer', 'designer'] },
  { name: 'Charlie', experience: ['freelance'] },
]

leftJoin(
  leftArray1,
  rightArray1,
  'info.name',
  'name',
  (left, right) => ({ name: left.info.name, job: right?.experience[0] ?? null }),
) // [{ name: 'Alice', job: 'software engineer' }, { name: 'Bob', job: null }, { name: 'Charlie', job: 'freelance' }]

API

Type Parameter

ArgTypeDescription
Textends object左连接中左侧数组元素类型
Uextends object左连接中右侧数组元素类型
Rextends object返回的数组元素类型

Arguments

ArgTypeOptionalDefaultDescription
leftT[]falseundefined左连接中左侧的数组
rightU[]falseundefined左连接中右侧的数组
leftKeystring | ((item: T, index: number, arr: T[]) => any)falseundefined为左侧数组提供区分元素的标识
rightKeystring | ((item: U, index: number, arr: U[]) => any)falseundefined为右侧数组提供区分元素的标识
merge(left: T, right: U | undefined) => Rfalseundefined返回左右数组元素合并的结果

Returns

Type
R[]