JavaScript 开发中,获取一个深度嵌套对象中的某个属性值时,如果该属性链上有一个 undefined 或者 null,那么就会导致代码出错,甚至直接崩溃。为了避免这种情况的出现,就可以使用 npm 包 just-safe-get。在本文中,我们将会介绍 just-safe-get 的使用方法。
just-safe-get 简介
just-safe-get 是一个用于获取深层对象属性的 npm 包。与其他类似的包不同的是,just-safe-get 还提供了一些额外的功能,这些功能可以帮助我们更方便地操作对象。
安装 just-safe-get
可以通过以下命令来安装 just-safe-get:
npm i just-safe-get
使用 just-safe-get
使用 just-safe-get 很简单,只需要按照以下步骤操作即可:
- 首先,导入 just-safe-get:
import safeGet from 'just-safe-get'
- 然后,可以通过以下方式获取一个深度嵌套对象中的某个属性值:
-- -------------------- ---- ------- ----- --- - - ---- - ---- - ---- ------ ------ - - - ----- ----- - ------------ -------------- -- ----- --- ------ ------
在上面的示例中,我们传入了一个深度嵌套的对象和一个由点号分隔的属性链,just-safe-get 就会遍历整个属性链,然后返回最终的属性值。如果中途有属性值为 undefined 或 null,那么 just-safe-get 会立即返回 undefined。
- 除了获取属性值外,just-safe-get 还可以执行一些特殊的操作。例如,可以使用默认值来避免返回 undefined:
const obj = { foo: null } const value = safeGet(obj, 'foo.bar.baz', 'hello world') // value 的值为 'hello world'
在上述示例中,由于 obj.foo 为 null,因此直接返回了默认值 'hello world'。
- 如果你只是想获取属性值的类型而不是属性值本身,就可以使用 getType 方法:
-- -------------------- ---- ------- ----- --- - - ---- - ---- - ---- ------ ------ - - - ----- -------- - -------------------- -------------- -- -------- --- --------
- 注意,当属性值为 undefined 或 null 时,你可能会遇到一些问题。有时候,你希望属性值为 undefined 或 null 时返回一个默认值,而有时候你又希望直接返回 undefined 或 null。为了解决这个问题,just-safe-get 还提供了一个 get 方法,你可以自定义一个函数来处理属性值:
const obj = { foo: null } const handleNull = (v) => v === null ? 'is null' : v const value = safeGet.get(obj, 'foo', handleNull) // value 的值为 'is null'
在上述示例中,我们传入了一个自定义函数 handleNull,这个函数会判断属性值是否为 null,如果是的话就返回 'is null'。由于 obj.foo 值为 null,因此 get 方法返回了 'is null'。
总结
just-safe-get 是一个非常好用的 npm 包,它可以帮助我们避免由于 undefined 或 null 导致的代码错误。在开发过程中,我们可以通过使用 just-safe-get 来更加方便地操作对象。希望本篇文章能够对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/72688