1.1.2 • Published 4 years ago
ojbk v1.1.2
更新日志
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在此处有两重含义
- 2017 年网络流行用语,意为 完全Ok可行;
- 原本是想命名 objk,意为 object key,写出来发现被中文输入法纠偏为了 ojbk 那就这样吧。