js封装方法 去除对象内 所有非法数据 包括 空数组 空对象 int 0 string 0

为了去除一个对象内的所有非法数据,您可以使用递归方法来遍历整个对象,并删除不符合要求的数据。以下是一个示例函数,该函数可以用于删除空数组、空对象、非法、0 值的整数和字符串 “0”:

function cleanObject(obj) {
  for (var prop in obj) {
    var value = obj[prop];
    if (value === null || value === undefined || Number.isNaN(value)) {
      delete obj[prop];
    } else if (typeof value === 'object') {
      if (Array.isArray(value)) {
        if (value.length === 0) {
          delete obj[prop];
        }
      } else {
        cleanObject(value);
        if (Object.keys(value).length === 0) {
          delete obj[prop];
        }
      }
    } else if (typeof value === 'number') {
      if (value === 0 || Number.isNaN(value)) {
        delete obj[prop];
      }
    } else if (typeof value === 'string') {
      if (value.trim() === '' || value.trim() === '0') {
        delete obj[prop];
      }
    }
  }
  return obj;
}

使用

var myObj = {
  name: '',
  age: 0,
  friends: [],
  isUndefined:undefined,
  isNan:NaN,
  emptyObj:{},
  address: {
    street: '',
    city: 'New York',
    state: 'NY',
    zip: '10001'
  }
};

cleanObject(myObj);
console.log(myObj); // { address: { city: 'New York', state: 'NY', zip: '10001' } }
在此示例中,由于空字符串、0 值和空数组、空对象、非法都被删除,因此该函数将返回一个只包含 address 属性的对象。

你可能感兴趣的:(教程,笔记,javascript,前端,reactjs,html5,vue)