返回
从对象中获取或设置值,不再害怕 undefined 了
见解分享
2024-01-03 22:02:37
前言
最近在研究 JavaScript 的一些特性和最佳实践,其中一个重要的方面就是如何安全地从对象中获取或设置值。在实际开发中,我们经常会遇到需要从嵌套对象中获取某个特定属性值的情况。如果属性不存在或者值为 undefined,直接访问会抛出异常,导致页面白屏或服务异常。
为了解决这个问题,我编写了一个简单的开源库,提供两个函数:getObjValue
和 setObjValue
。这两个函数可以安全地从对象中获取或设置值,即使属性不存在或值为 undefined。
安装和使用
该开源库可以在 GitHub 上找到:https://github.com/zzuwzj/get-set-obj
安装:
npm install --save get-set-obj
用法:
import { getObjValue, setObjValue } from 'get-set-obj';
const obj = {
a: {
b: {
c: 'value'
}
}
};
// 安全获取值
const value = getObjValue(obj, 'a.b.c'); // 'value'
// 安全设置值
setObjValue(obj, 'a.b.d', 'new value');
console.log(obj); // { a: { b: { c: 'value', d: 'new value' } } }
函数详解
getObjValue(obj, path)
getObjValue
函数用于安全地从对象中获取指定路径下的值。
参数:
obj
: 要获取值的 JavaScript 对象。path
: 值的路径,是一个点分隔的字符串。例如,'a.b.c'
表示从对象obj
中获取obj.a.b.c
的值。
返回值:
- 如果路径存在并且值为非 undefined,返回该值。
- 如果路径不存在或值为 undefined,返回
undefined
。
setObjValue(obj, path, value)
setObjValue
函数用于安全地向对象中设置指定路径下的值。
参数:
obj
: 要设置值的 JavaScript 对象。path
: 值的路径,是一个点分隔的字符串。例如,'a.b.c'
表示在对象obj
中设置obj.a.b.c
的值。value
: 要设置的值。
返回值:
- 设置成功时返回
true
。 - 如果路径不存在或无法设置值时返回
false
。
示例
获取嵌套对象的值
const obj = {
user: {
name: 'John Doe',
email: 'john.doe@example.com'
}
};
const name = getObjValue(obj, 'user.name'); // 'John Doe'
const email = getObjValue(obj, 'user.email'); // 'john.doe@example.com'
设置嵌套对象的值
const obj = {
user: {
name: 'John Doe'
}
};
const success = setObjValue(obj, 'user.email', 'john.doe@example.com'); // true
console.log(obj); // { user: { name: 'John Doe', email: 'john.doe@example.com' } }
优点
使用 getObjValue
和 setObjValue
函数的优点包括:
- 避免异常: 防止从 undefined 取值引发异常,提高代码稳定性。
- 简化代码: 无需再编写复杂的代码来检查属性是否存在或值为 undefined。
- 提高可读性: 代码更简洁易懂,减少了认知负担。
- 开源且免费: 可以在 GitHub 上免费获取和使用该开源库。
总结
安全地从对象中获取或设置值对于 JavaScript 开发至关重要。get-set-obj
开源库提供的两个函数 getObjValue
和 setObjValue
可以轻松解决此问题,提高代码质量和可靠性。鼓励开发者在项目中使用这些函数,以增强应用程序的稳定性和可维护性。