简介
object-only-value
是一个 npm 包,用于过滤掉对象(obj)下的空值(undefind, null, "", [], {})。这个包特别适合在表单提交等场景下减少不必要的数据传输,同时还可以避免后台操作过程中因为空数据导致的错误。
安装
object-only-value
可以通过 npm 安装:
npm install object-only-value
使用方法
object-only-value
的使用非常方便,只需要在你的js文件中调用就行了。
1. 引入
在你的 js 文件中,使用 require
方法引入。
const objectOnlyValue = require('object-only-value');
2. 使用
使用 objectOnlyValue
函数过滤对象的空值属性。接收一个对象作为参数,返回过滤后的新对象。示例:
-- -------------------- ---- ------- ----- --- - - ----- ----- ---- ----- ------- --- ------ -------------- -------- - ----- ----- --------- --- ------- ----- - -- ----- ------ - --------------------- --------------------
输出结果:
{ name: '小明', phone: '12345678901', address: { city: '上海' } }
深入理解
object-only-value
中使用了递归算法来过滤对象,我们可以来看一下这个算法的实现方法。
-- -------------------- ---- ------- -------- -------------------- - ----- ------ - --- --- ------ --- -- ---- - -- --------- --- ---- -- -------- --- --------- -- -------- --- --- - --------- - ---- -- ------------------------ -- --------------- -- -- - --------- - ---- -- ----------------------------------------- --- -------- --------- - ----------- - -------------------------- - ---- - ----------- - --------- - - ------ ------- -
在这个函数中,我们使用 for...in 循环遍历对象的属性,然后使用 if 判断语句过滤掉符合条件的属性。
其中,首先判断是不是 null、undefined 或者空字符串。如果是,就跳过此次循环。如果属性的值是一个空数组,则我们也将其过滤掉。
如果属性的值是一个对象,则递归执行这个函数,直到所有的非空属性被过滤出来。
最后,我们将过滤处理后的属性逐个加入到一个新的对象中,返回给调用函数。
示例代码
完整的示例代码如下:
-- -------------------- ---- ------- ----- --------------- - ----------------------------- ----- --- - - ----- ----- ---- ----- ------- --- ------ -------------- -------- - ----- ----- --------- --- ------- ----- - -- ----- ------ - --------------------- --------------------
总结
object-only-value
是一个非常实用的 npm 包,可以很好的过滤掉对象下的空值。在开发过程中,我们常常需要处理不必要的数据,这个包可以让我们在提交表单等场景下减少不必要的数据传输。
同时,使用 object-only-value
可以避免后台操作过程中因为空数据导致的错误,提高了开发效率。
在使用过程中,需要注意的是递归算法中的性能问题,特别是当递归层级较深的时候。需要根据实际情况决定是否使用此包,以达到更好的效果。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f9b3d1de16d83a66e27