# @pansy/replace-object-keys

> 替换对象键名，支持普通对象、对象数组以及树对象，支持过滤功能

Latest version **0.5.0** (published 2020-09-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install @pansy/replace-object-keys
pnpm add @pansy/replace-object-keys
yarn add @pansy/replace-object-keys
bun add @pansy/replace-object-keys
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.5.0 |
| Published | 2020-09-12 |
| First published | 2019-12-06 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 3 |
| Unpacked size | 16.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Pansy Team |
| Maintainers | wangxingkang |

## Links

- npm: https://www.npmjs.com/package/@pansy/replace-object-keys
- npm.io page: https://npm.io/package/@pansy/replace-object-keys

## Dependencies (3)

- [@pansy/is-array](https://npm.io/package/@pansy/is-array.md) 0.5.0
- [@pansy/is-object](https://npm.io/package/@pansy/is-object.md) 0.5.0
- [@pansy/is-empty-object](https://npm.io/package/@pansy/is-empty-object.md) 0.5.0

## Recent versions

- 0.5.0 (latest) — 2020-09-12
- 0.4.0 — 2020-03-31
- 0.3.6 — 2019-12-20
- 0.3.5 — 2019-12-20
- 0.3.3 — 2019-12-10
- 0.3.2 — 2019-12-08
- 0.3.1 — 2019-12-06

## README

<h1 align="center">@pansy/replace-object-keys</h1>

> 替换对象键名，支持普通对象、对象数组以及树对象，支持过滤功能

## 📦 安装

```
// npm
npm install @pansy/replace-object-keys --save

// yarn
yarn add @pansy/replace-object-keys

```

## 🔨 使用

```
import replaceObjectKeys from '@pansy/replace-object-keys';

// 对象
const objData = { key: '1-1-1', type: 'api', name: 'name-111' };

const result = replaceObjectKey(objData, { name: 'title', key: 'value' });
// => { value: '1-1-1', title: 'name-111' }

// 数组对象
const arrData = [
  { key: '1-1-1', type: 'api', name: 'name-111' },
  { key: '1-1-2', type: 'api', name: 'name-112' },
  { key: '1-1-3', type: 'api', name: 'name-113' }
];

const result = replaceObjectKey(arrData, { name: 'title', key: 'value' });
// => [
// =>   { value: '1-1-1', title: 'name-111' },
// =>   { value: '1-1-2', title: 'name-112' },
// =>   { value: '1-1-3', title: 'name-113' }
// => [

// 树对象
const treeData = [
  { key: '0', type: 'route', name: 'name-0' },
  {
    key: '1',
    type: 'route',
    name: 'name-1',
    children: [
      {
        key: '1-0',
        type: 'route',
        name: 'name-10',
        children: [
          { key: '1-0-0', type: 'api', name: 'name-100' },
          { key: '1-0-1', type: 'api', name: 'name-101' }
        ]
      },
      {
        key: '1-1',
        type: 'route',
        name: 'name-11',
        children: [
          { key: '1-1-1', type: 'api', name: 'name-111' },
          { key: '1-1-2', type: 'api', name: 'name-112' },
          { key: '1-1-3', type: 'api', name: 'name-113' }
        ]
      }
    ]
  }
];

// 选出名称为 "name-113", "name-112" 的数据
const filterName = ['name-113', 'name-112'];

const result = replaceObjectKey(
  treeData,
  { name: 'title', key: ['value', 'key'], type: 'type' },
  {
    simplify: false,
    filter: (data) => {
      if (filterName.includes(data.title)) {
        return data;
      }
      return;
    }
  }
);
```

### 参数配置

| 参数    | 描述                              | 类型               | 默认值 |
| :------ | --------------------------------- | :----------------- | -----: |
| data    | 需要替换键值名的数据              | object \| object[] |        |
| options | 指定需要替换的键值名              | object             |        |
| config  | 配置转换后数据的格式,具体参考下表 | object             |        |

### config

| 参数        | 描述                                                          | 类型                                | 默认值   |
| ----------- | ------------------------------------------------------------- | ----------------------------------- | -------- |
| simplify    | 是否按替换配置返回数据，设置为 `false` 时同时返回未被替换的值 | boolean                             | true     |
| childrenKey | 当数据为 Tree 类型数据时， 指定其 children 的对应的键名       | string                              | children |
| filter      | 配置数据是否过滤                                              | function(data): object \| undefined |          |

---
_Source: https://npm.io/package/@pansy/replace-object-keys · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
