javascript 判断空对象-js如何删除对象/字段中的null、未定义、空对象和空链表的示例

2023-08-29 0 1,030 百度已收录

如下,对于多级嵌套数据结构:例如

要做的就是删除所有具有空值、空字段和空对象数组

const querys = {
  name: '测试',
  httpMethod: '',
  httpHeaders: [
    {
      key: 'Accept',
      value: 'test',
    },
  ],
  restParams: [
    {
      key: '',
      value: '',
    },
  ],
  body: {
    bodyType: '',
    formDataList: [
      {
        contentType: '',
        key: '',
        value: '',
      },
    ],
  },
  microtask: {
    bodyType: 'javascript',
    formDataList: [
      {
        key: '2',
        value: '4',
      },
    ],
  },
};

通过处理,我们希望得到如下结构:

{
  name: '测试',
  httpHeaders: [
    {
      key: 'Accept',
      value: 'test',
    },
  ],
  microtask: {
    bodyType: 'javascript',
    formDataList: [
      {
        key: '2',
        value: '4',
      },
    ],
  },
}

第一:过滤各类空数据的数组,例如string、null、undefined、[]、{}

使用这个方法:(注意调用了两次)

export const delEmptyQueryNodes = (obj = {}) => {
  Object.keys(obj).forEach((key) => {
    let value = obj[key];
    value && typeof value === 'object' && delEmptyQueryNodes(value);
    (value === '' || value === null || value === undefined || value.length === 0 || Object.keys(value).length === 0) && delete obj[key];
  });
  return obj;
};

调用方法:

let res = delEmptyQueryNodes(delEmptyQueryNodes(params));

res是过滤后你想要的数据

第二:删除对象中所有为空或为 null 或未定义的属性(简单方法)

1.首先写一个方法判断当前值为空

function isEmpty(obj) {
  if (typeof obj === 'undefined' || obj === null || obj === '') return true;
  return false
}

2.删除对象中所有值为空的属性

var formData = {
   a: "duo",
   b: 0,
   c: undefined,
   d: null,
   e: null
}
function preProcessData(formData) {
  Object.keys(formData).forEach(item=>{
    if(this.isEmpty(formData[item])) {
      delete formData[item];
    }
  })
  return formData;
}

第三:ES6-使用js删除对象中值为null和未定义的数据

需要去掉对象中的null值用于提交表单。 但是javascript 判断空对象,通过antd表单的form.validateFields()方法获取的值可能会出现undefined或null。 这次的分享方式简单实用,更加高贵。

-------->>>>>>

代码:

const params = Object.keys(data)
	.filter((key) => data[key] !== null && data[key] !== undefined)
	.reduce((acc, key) => ({ ...acc, [key]: data[key] }), {});

代码原理是通过Object.keys遍历对象中的键值javascript 判断空对象,通过filter方法过滤掉值不为null和undefined的数据。 这个方法最有灵魂的部分就是reduce高阶函数的使用。 将reduce返回值的第二个参数传递给{}初始值,将符合条件的字段中的属性和属性值通过reduce内部循环添加到对象中。 走吧,最后返回一个我们想要的不带空值的对象。

沟通

1.QQ群:可添加常用进阶学习QQ群:进阶全栈工程师故障排除群号:856402057

2、公众号:公众号“进入全栈攻城狮”是后端技术的学习爱好者。 我会经常分享自己学到的、看到的干货,在前进的路上鼓励自己!可以通过公众号添加我的vx群

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 判断空对象-js如何删除对象/字段中的null、未定义、空对象和空链表的示例 https://www.wkzy.net/game/177573.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务