安装
选择一个你喜欢的包管理器。
sh
npm install parsnip-kit
sh
yarn parsnip-kit
sh
pnpm install parsnip-kit
sh
bun install parsnip-kit
兼容性
Parsnip Kit 支持在以下环境运行:
![]() | ||||
---|---|---|---|---|
≥2020 | ≥88 | ≥78 | ≥87 | ≥14 |
如果您需要支持旧版本的浏览器,请自行添加 Babel 和相应的 Polyfill。
使用示例
typescript
import {
sum,
median,
average,
pairsToObject,
leftJoin,
getByPath,
omit,
pick
} from 'parsnip-kit'
const data = [
{
id: 13, name: 'Alice', email: 'alice@example.test',
blog: { count: 15, fans: 45 }
},
{
id: 18, name: 'Bob', email: 'bob@example.test',
blog: { count: 55, fans: 1546 }
},
{
id: 35, name: 'Carlin', email: 'carlin@example.test',
blog: { count: 116, fans: 56563 }
}
]
const profile = [
{ id: 13, age: 44, nickname: 'coding neko' },
{ id: 18, age: 30, nickname: 'kurisutina' },
{ id: 35, age: 23, nickname: 'Bob - Software Engineer' }
]
average(data, 'blog.count') // 62
sum(data, 'blog.count') // 186
median(data, 'blog.count') // 55
pairsToObject(data, 'name', 'blog.fans')
// { Alice: 45, Bob: 1546, Carlin: 56563 }
getByPath(data, '[0].email')
// 'alice@example.test'
omit(data[0], ['blog'])
// { id: 13, name: 'Alice', email: 'alice@example.test' }
pick(data[0], ['id', 'name', 'blog'])
// { id: 13, name: 'Alice', blog: { count: 15, fans: 45 } }
leftJoin(data, profile, 'id', 'id', (a, b) => ({...a, ...b}))
// [
// {
// id: 13, name: 'Alice', email: 'alice@example.test',
// age: 30, nickname: 'kurisutina',
// blog: { count: 15, fans: 45 }
// },
// {
// id: 18, name: 'Bob', email: 'bob@example.test',
// age: 30, nickname: 'kurisutina',
// blog: { count: 55, fans: 1546 }
// },
// {
// id: 35, name: 'Carlin', email: 'carlin@example.test',
// age: 23, nickname: 'Bob - Software Engineer',
// blog: { count: 116, fans: 56563 }
// }
// ]