如何使用js深度刪除對象中爲'空'的字段?

/**
 * 去除對象中所有符合條件的對象
 * @param {Object} obj 來源對象
 * @param {Function} fn 函數驗證每個字段
 */
function compactObj (obj, fn) {
  for (var i in obj) {
    if (typeof obj[i] === 'object') {
      compactObj(obj[i], fn)
    }
    if (fn(obj[i])) {
      delete obj[i]
    }
  }
}

// 刪除空對象 刪除'', null, undefined
function isEmpty (foo) {
    if (typeof foo === 'object') {
      for (var i in foo) {
        return false
      }
      return true
    } else {
      return foo === '' || foo === null || foo === undefined
    }
}

const obj = {
    a: 1,
    b: '',
    c: {
        d: {
            e: {}
        }
    }
}

// 調用方法
compactObj(obj, isEmpty) // {a:1}

​

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章