0.5.0 • Published 4 years ago

@pansy/replace-object-keys v0.5.0

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

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

📦 安装

// 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 时同时返回未被替换的值booleantrue
childrenKey当数据为 Tree 类型数据时, 指定其 children 的对应的键名stringchildren
filter配置数据是否过滤function(data): object | undefined