请教一个清空深数组或深对象里部分非值的方法?
如题,入参是一个未知的数据结构,可能是对象或是一个数组,过滤掉里面所有空字符串,null, undefined,NaN等, 但是不包括数字0和false,(包括空对象或者空数组)。有什么性能较优的方法处理吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题,入参是一个未知的数据结构,可能是对象或是一个数组,过滤掉里面所有空字符串,null, undefined,NaN等, 但是不包括数字0和false,(包括空对象或者空数组)。有什么性能较优的方法处理吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
首先 JSON.stringify可以清除掉undefined,NaN,function
然后对字符串做处理
大概代码如下
JSON.stringify({a:0, b: null, c: undefined, d:NaN, e:function() {}, f: '', g: [], h: {}}).replace(/,?"[a-zA-Z0-9_]+\"\:((\{\})|(\[\])|""|null)/g, '')
最后再JSON.parse一下就好了
这种深层次的数据结构,循环遍历处理非值
封装一个递归去处理,看使用场景,我这个没处理NaN
不确定层级肯定是递归去解决
然后就是判断是不是为空
大概的实现逻辑可以参考深拷贝、或者说发ajax时的一些过滤方法。