首页 > 其他分享 >写一个方法去除对象中值为空('',' ',null,undefined)的属性

写一个方法去除对象中值为空('',' ',null,undefined)的属性

时间:2024-12-25 09:35:23浏览次数:8  
标签:undefined 对象 key 中值 null cleanedObj 属性

在前端开发中,你可以使用JavaScript来编写一个方法,该方法会遍历对象的属性并删除值为空(''、' '、null、undefined)的属性。以下是一个示例实现:

function removeEmptyProperties(obj) {
  // 创建一个新的对象,以避免直接修改原始对象
  const cleanedObj = { ...obj };

  // 遍历对象的属性
  for (const key in cleanedObj) {
    // 检查属性值是否为空(''、' '、null、undefined)
    if (cleanedObj[key] === '' || cleanedObj[key] === ' ' || cleanedObj[key] === null || cleanedObj[key] === undefined) {
      // 删除该属性
      delete cleanedObj[key];
    }
  }

  // 返回清理后的对象
  return cleanedObj;
}

// 示例用法
const person = {
  name: 'John',
  age: '',
  address: ' ',
  phone: null,
  email: undefined,
  occupation: 'Developer'
};

const cleanedPerson = removeEmptyProperties(person);
console.log(cleanedPerson);
// 输出: { name: 'John', occupation: 'Developer' }

在这个示例中,removeEmptyProperties 函数接受一个对象作为参数,并创建一个该对象的浅拷贝。然后,它遍历拷贝后的对象的每个属性,并检查其值是否为空(''、' '、null、undefined)。如果属性值为空,则使用 delete 运算符从对象中删除该属性。最后,函数返回清理后的对象。

请注意,这个函数只会删除值为空的属性,而不会删除值为0、false或其他被认为是“假值”的属性。如果你需要更复杂的逻辑来处理这些情况,可以根据需要进行修改。

标签:undefined,对象,key,中值,null,cleanedObj,属性
From: https://www.cnblogs.com/ai888/p/18629351

相关文章

  • Java:为什么容器接口中定义的clear()方法具体实现要遍历每个元素并将其设置为null,而不
    以ArrayList为例,其clear()的具体实现为遍历每一个元素,并将其设置为null。publicvoidclear(){modCount++;finalObject[]es=elementData;for(intto=size,i=size=0;i<to;i++)es[i]=null;}笔者作为初学者,很难不产生疑惑,为什么不将s......
  • 只谈C++11新特性 - nullptr
    nullptr在C++11标准中,引入了nullptr关键字,用来表示空指针。这是对原有NULL的重要改进,提供了更强的类型安全性,并避免了一些常见的编程错误。1.nullptr的特点nullptr是一种新类型std::nullptr_t的常量,用于表示空指针。与NULL不同,nullptr具有明确的指针类型......
  • 微信小程序自定义组件boundingClientRect获取到的rect值为null
      解决办法: 在自定义组件内获取必须用SelectorQuery.in()Component({lifetimes:{ready(){constquery=wx.createSelectorQuery().in(this)constnum=Math.ceil(this.data.picList.length/LINE_LENGTH)query.select('.tab-content-i......
  • 怎样能才更安全地获取undefined的值?
    在前端开发中,处理undefined的值是一个常见的挑战。当你试图访问一个未定义的变量或对象属性时,JavaScript会抛出一个错误。为了更安全地获取undefined的值,你可以采用以下几种方法:使用逻辑运算符:你可以使用逻辑运算符(如||)来提供一个默认值,以防变量是undefined。letvalue;cons......
  • 解决:ImportError: /lib64/libldap.so.2: undefined symbol: EVP_md2, version OPENSSL
    解决:ImportError:/lib64/libldap.so.2:undefinedsymbol:EVP_md2,versionOPENSSL_3.0.0报错 [root@localhost]#dnfinstall-ynet-toolsTraceback(mostrecentcalllast):File"/usr/bin/dnf",line61,in<module>fromdnf.cliimportmain......
  • lang.IllegalStateException_ Type handler was null on parameter mapping for prope
    在使用mybatis-plus的removeIds()方法时抛出此异常。在调用的时候传入了实体类对象的list的集合使用id的集合即可List<PojoInfo>totalList;//错误用法service.removeByIds(totalList);//正确用法List<Long>idList=totalList.stream().map(PojoInfo::getId).collec......
  • C/C++中的NULL/nullptr到底是什么?
    操作系统在运行程序时,总是根据内存地址来查找该地址中存放的内容,继而进行运算的。所以,要知道,加载到内存中的所有数据都是存放在一定的地址中的。如下代码段,我们查看一下nullptr到底是什么?点击查看代码#include<iostream>intmain(){ void*var=nullptr; std::cin.......
  • Nlog在windows运行正常,部署到Linux提示ystem.NullReferenceException: Object referen
    1.问题.net9webapplication,在Programe.cs文件中的NLog.LogManager.Configuration.Variables["configDir"]=env.ContentRootPath这句在Windows运行正常,部署到Ubuntu24.04就提示System.NullReferenceException:Objectreferencenotsettoaninstanceofanobject.......
  • null是对象吗?
    在前端开发(以及大多数编程语言中),null并不是一个对象。解释类型:null是一个特殊的值,表示“空”或“无”。在JavaScript中,typeofnull会返回"object",这是一个著名的历史遗留问题。不过,现代JavaScript引擎和开发者通常会避免依赖这个行为。行为:null没有属性和方......
  • 达梦DOTNET驱动DM.Provider8.3.1.30495存在空字符串插入变DBNull的问题
    达梦数据库的DOTNET驱动DM.Provider,这个版本8.3.1.30495有bug,会把空字符串改成DBNull处理,反编译代码发现Dm.DmSetValue.SetString方法中判断字符串长度==0就设置成DBNull。解决办法就是降低版本到8.3.1.28188。//Dm.DmSetValueusingSystem;usingSystem.Globalization;usi......