深度删除对象/数组中的空字段


问题描述:

将对象中的空字段删掉,比如这样的一个对象:

const obj = { name: 'wise', age: 0, info: '', key1: null, key2: undefined, }

处理成为:

obj = { name: 'wise', age: 0, }

 

解决方案:

/** * 深度删除对象/数组中的空字段 * @param {Object} obj 目标对象 * @param {Array} except 必须排除的字段名的集合,这些字段不论结果,直接舍弃 */
function CleanEmptyKey(obj, except = ['key']) { if (typeof obj !== 'object') { // 兼容对象和数组 
    return obj; } const res = Array.isArray(obj) ? [] : {}; for (const key in obj) { // 如果是需要排除的字段,直接舍弃
    if (except && except.includes(key)) continue; // 有值或值为0,则保留键值对
    if (obj[key] || obj[key] === 0) { res[key] = CleanEmptyKey(obj[key]); } } return res; };

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM