Javascript检查对象及其嵌套对象的所有值

问题描述 投票:1回答:3

您好,我目前遇到这样的问题:如果其中的所有值为null或0,则检查具有另一个嵌套对象的对象

我的对象如下:

{
   "city":0,
   "road":{
      "max":null,
      "min":null
   },
   "size":{
      "max":null,
      "min":null
   },
   "type":null,
   "ward":0,
   "floor":null,
   "price":{
      "max":null,
      "min":null
   },
   "street":0,
   "toilet":null,
   "balcony":null,
   "bedroom":null,
   "district":0,
   "frontend":{
      "max":null,
      "min":null
   },
   "direction":null,
   "living_room":null
}

我需要检查其中的每个值都是0还是null,如果所有值都是0或null,则返回true,如果其中任何一个值不同于null或0,则返回false”>

我不能使用:

Object.values(object).every(i =>(i === null || i ===''))

它返回False,因为嵌套的对象仍将其视为不同于0和null的值

如果条件一次检查每个值,我不想写超长时间

无论如何,是否有迭代对象的步骤,并且要检查嵌套对象的权限?

您好,我目前一直面临这样的问题:如果其中的所有值均为null或0,则检查具有另一个嵌套对象的对象。我的对象如下:{“ city”:0,“ road”:{“ max” :null,...

javascript nested-object
3个回答
1
投票

您可以采用迭代和递归的方法。


1
投票

一个(不明确的)选项是将JSON.stringify与回调一起使用,只要找到非0或null的值,就设置一个标志:


1
投票

您可以创建一个使用fn来获取值数组的函数(Object.values()),并使用Array.every()进行迭代,如果该值是对象,则在其上使用fn

© www.soinside.com 2019 - 2024. All rights reserved.