react中的JS判断对象是否为空对象的几种方法

在使用react的时候,props中的值通常作为对象在父组件和子组件之间进行进行传递,通常会牵扯到判断对象是否为空的情况,今天遇到,特意来记录下方便以后回顾.

一:使用JSON的内置对象方法JSON.stringify()

const obj = {} ;

JSON.stringify(obj) === '{}' ;

方法返回值: boolean

二:使用ES6的方法Object.getOwnPropertyNames()

const obj = {} ;

Object.getOwnPropertyNames(obj) ;

返回值:这个方法是获取到对象中的属性名,存到一个数组中,返回数组对象,可以通过长度来判断对象是否为空。如:

const isTrue = Object.getOwnPropertyNames(obj).length === 0 ? true : false ;

三:使用ES6的方法Object.keys()

const obj = {} ;

Object.keys(obj) ;

返回值:这个方法也是获取到对象中的属性名,存到一个数组中,返回数组对象
和第二种方法不同的就是,getOwnPropertyNames()返回的属性字符串包括了不可枚举,而Object.keys()只返回可枚举的属性字符串数组。如果我们没有显示的定义属性是否可枚举,那么创建的属性默认是可枚举的,所以这样,两者返回的结果是一样的。如:

const isTrue = Object.keys(obj).length === 0 ? true : false ;

四:jquery的isEmptyObject(),使用时需要引入jq的依赖

const obj = {} ;

const b = $.isEmptyObject(obj);

返回值:boolean

alert(b); //true
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
React ,如果数组存储的是对象,可以使用 JavaScript 的 Array.prototype.some() 方法判断对象是否存在某个字符串。some() 方法会遍历数组的每一个元素,并对每个元素执行给定的函数,如果该函数返回 true,则 some() 方法返回 true,否则返回 false。 以下是一个示例代码: ```jsx const myArray = [ { id: 1, name: 'apple' }, { id: 2, name: 'banana' }, { id: 3, name: 'orange' } ]; const hasName = myArray.some((item) => item.name.includes('apple')); console.log(hasName); // true ``` 在上面的代码,我们先声明了一个数组 myArray,其存储了三个对象,每个对象都有 id 和 name 两个属性。我们使用 some() 方法遍历 myArray 数组的每个元素,对每个元素执行一个函数,该函数判断该元素的 name 属性是否包含字符串 'apple',如果包含,则返回 true,否则返回 false。最终,我们将 some() 方法的返回值存储在 hasName 变量,该变量的值为 true,表示数组存在 name 属性包含 'apple' 字符串的对象。 需要注意的是,上述示例使用了字符串的 includes() 方法判断 name 属性是否包含指定字符串。如果需要精确匹配字符串,则可以使用字符串的 indexOf() 方法。例如: ```jsx const hasExactName = myArray.some((item) => item.name === 'apple'); console.log(hasExactName); // true ``` 在上面的代码,我们使用 === 运算符来判断 name 属性是否等于 'apple' 字符串,从而实现精确匹配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值