ojbk

1.1.2 • Public • Published

更新日志

1.1.2

  1. 修复底层结果为0、''、undefined 时的异常结果返回
  2. 修复整串索引位置错误后,返回部分取值结果,修复为返回null

为什么要写 ojbk

当查询一条 APi, 或进行一次数据库查询的时候会出现一些要获取的数据层级很深 且 非固定出现的场景。如

// 请求结果
var data = {
  code: 0,
  data: {
    _id: 1,
    name: '张三',
    org: {
      _id: 2,
      name: 'XXX省XX公司'
    }
  }
}

其中 org 为单位信息,当用户未绑定单位信息时会反馈如下数据:

var data = {
  code: 0,
  data: {
    _id: 1,
    name: '张三'
  }
}

如果前端直接通过data.data.org.name获取单位名称时就会存在隐患。即:org不存在时会报错。通常的处理方式是不断的加前置判断,现在通过ojbk来实现前置判断处理。

如何使用

1. 下载

目前只能通过 npm/Yarn 下载

目前支持 AMD/CMD/CommonJs , cdn 以后再说。

  npm install ojbk --save
  yarn add ojbk # 推荐 

2.1 纯函数使用

import ojbk from 'ojbk';
 
const a = {
  b: {
    c: {
      d: 1
    },
    e: [
      2,
      3,
      5,
      {
        f: {
          g: 1
        }
      }
    ]
  }
}
 
ojbk(a, 'b.e.3.f.g') // => 1
ojbk(a, 'b.e.3.f') // => { g: 1 }
ojbk(a, 'b.f') // => null
 

2.2 Object 原型函数扩展

import 'ojbk/polyfill'; // 此时将 ojbk函数扩展至 Object 原型
 
const a = {
  b: {
    c: {
      d: 1
    },
    e: [
      2,
      3,
      5,
      {
        f: {
          g: 1
        }
      }
    ]
  }
}
 
a.ojbk('b.e.3.f.g') // => 1
a.ojbk('b.e.3.f') // => { g: 1 }
a.ojbk('b.f') // => null
 

为什么叫 ojbk ?

ojbk在此处有两重含义

  1. 2017 年网络流行用语,意为 完全Ok可行;
  2. 原本是想命名 objk,意为 object key,写出来发现被中文输入法纠偏为了 ojbk 那就这样吧。

Readme

Keywords

Package Sidebar

Install

npm i ojbk

Weekly Downloads

4

Version

1.1.2

License

MIT

Unpacked Size

4.27 kB

Total Files

7

Last publish

Collaborators

  • kevenchao