JS判断数据类型以及数据过滤空值方法

在我们的项目开发中,经常需要对一个传输中的数据进行滤空处理,过滤 nullundefined''[]{}等,还要对字符串进行去除两端的空格操作。为此,我写了一个递归处理方法,代码如下:

const toType = obj => {return ({}).toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
}
const filterNull = o => {for (let key in o) {if (o[key] == null) delete o[key]if (toType(o[key]) === 'string') {o[key] = o[key].trim()if (o[key] === '') delete o[key]} else if (toType(o[key]) === 'object') {o[key] = filterNull(o[key])if (JSON.stringify(o[key]) === '{}') delete o[key]} else if (toType(o[key]) === 'array') {o[key] = filterNull(o[key])o[key] = o[key].filter(arr => arr)if (o[key].length === 0) delete o[key]}}return o
}
export default filterNull

使用该方法,能完全过滤上面的需求的那些空数据。

该方法不会过滤顶级为空的情况,比如 filterNull({}) 或者 filterNull([]) 这种,会得到一个空的对象或者数组。

以上内容为原创,允许转载,转载必须注明出处。
今年太忙了,上海的节奏真心快啊!城里套路多,我要回农村。。。

JS判断数据类型以及数据过滤空值方法相关推荐

  1. js判断数据类型常用的6种方法

    js判断数据类型常用的方法,不论在开发中开始在面试中,都是经常遇到的问题,尤其是在面试时,当面试官问及js判断数据类型的方法时,回答的越多,说明掌握的广度跟深度越多,感觉自己逼格也越高.废话不多说了, ...

  2. js判断数据类型常用的四种方法

    首先说一下js中的数据类型 基本数据类型:String.Number.Boolean.null.undefined.Symbol 引用数据类型:Object  1.typeof const a1 = ...

  3. js中判断数据类型的几种实用方法

    前言 最近项目中有不少地方需要判断数据类型,但是判断数据类型也有好几种方法,并且每种方法判断的数据类型也有局限性,所以想总结一下,方便以后查阅. 分别是 typeof ,instanceof,Obje ...

  4. 分享一波很全的 JS 判断数据类型的方法

    分享一波很全的 JS 判断数据类型的方法 干货满满,很常用也很有用的一波方法整理,分享给需要的小伙伴们. 偷偷说一句,小肉包之前整理的没有这么简洁和全面,后面小肉包的男朋友又帮忙加工润色了一下,现在看 ...

  5. js判断字符是否为空的方法

    js判断字符是否为空的方法: //判断字符是否为空的方法 function isEmpty(obj){if(typeof obj == "undefined" || obj == ...

  6. php与js字符串长度怎么算,JS判断字符串长度的5个方法

    主要介绍JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 代码如下: String.prototype.gb ...

  7. JS判断字符串长度的5个方法

    为什么80%的码农都做不了架构师?>>>    主要介绍JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字 ...

  8. JS判断对象是否为空的方法大全

    JS判断对象是否为空的方法大全 1.将json对象转化为json字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify( ...

  9. js 判断数据类型的几种方法

    粗体判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法 ...

最新文章

  1. 推荐10个windows软件,让你的办公更高效
  2. Hexo+腾讯云COS,为你的站点加速
  3. C# 打印 长字符串自动换行
  4. 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面
  5. 作为前端,你不得不知道的SEO
  6. MySql取得日期(前一天、某一天)
  7. AS3 调用外部SWF中元件库中的元件 【转】
  8. 数据库---分组查询
  9. Android的EditText文字动态监听
  10. 「SCOI2015」小凸想跑步 解题报告
  11. highlightjs 详解
  12. google hacking搜索语法总结
  13. (转载)硬盘安装XP64位系统
  14. 问卷与量表数据分析(SPSS+AMOS)学习笔记(十四) :量表初测阶段的信度分析,删除题项
  15. 基于C++实现家谱管理系统
  16. 打字测试软件 tt,TT打字测试软件
  17. py函数式编程(高阶函数map/reduce/filter/sorted、闭包函数/返回函数、匿名函数lamber、@装饰器decorator、偏函数functool.partial())
  18. android 实现Sqlite的增删改查及系统的登录注册功能
  19. #触摸一体机##五指息屏#
  20. E盘里多了个ppsds.pgf文件是怎么回事?

热门文章

  1. Android手写笔应用的实现,android手写笔思路
  2. 一款三搭_奔三奔四的女人别乱穿,这5件裙子再火都别穿,丑得像地摊货
  3. 目前的Android 市场怎么样?还好吗?
  4. linux shell 生成图片,shell脚本获取网页快照并生成缩略图
  5. python爬虫: 爬取boss网站数据 保存到mysql
  6. 字符统计1 SDUT
  7. 【狮子数学】chapter3-07-积分中值定理(第66讲)
  8. 【值得反复看反复思考】博弈心理学完结撒花(精华篇)
  9. mysql+清理undo_undo清理 redo 持久化
  10. 基于springboot的论坛系统