【问题标题】:How find empty array and object , in object如何在对象中找到空数组和对象
【发布时间】:2021-11-04 18:45:57
【问题描述】:

我有一个包含数据(null)的对象和其他对象的数组,其值也为null,如果所有值都为null则为false,如果至少一个为其他值则为true。如何解析此对象并查看所有数据是否为空并获取真/假

Object { employerCompanyName: null, companyBenefitsProviderName: null, companyRepresentative: null, website: null, logonID: null, password: null, benefitsDetails: (1) […], coverageDetails: (1) […], beneficiaryDetails: (1) […], notes: null }

​ beneficiaryDetails: 数组 [ {…} ] ​​​​ 0:对象{受益人:空,分配:空} ​​​​ 长度:1 ​​​​ : 大批 [] ​​​ 好处详细信息:数组 [ {…} ] ​​​​ 0:对象{好处包类型:空,好处覆盖详细信息:[],策略编号:空} ​​​​ 长度:1 ​​​​ : 大批 [] ​​​ companyBenefitsProviderName:空 ​​​ 公司代表:空 ​​​ coverageDetails: Array [ {…} ] ​​​​ 0:对象{familyMemberCovered:null,货币:null,金额:null} ​​​​ 长度:1 ​​​​ : 大批 [] ​​​ 雇主公司名称:空 ​​​ 登录ID:空 ​​​ 备注:空 ​​​ 密码:空 ​​​ 网站:空

【问题讨论】:

  • 请提供一个可重复的最小示例,包括您的数据是什么样的以及您为实现目标所做的努力。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: javascript arrays reactjs object


【解决方案1】:

根据规范创建了测试对象。当对象内部或该对象的数组中存在非空值时,用于设置标志和记录值的定义逻辑。

将对象传递给 Object.entries 进行测试。只需将此逻辑包装在一个函数中,该函数将参数传递到 Object.entries 并返回所需的任何内容。

let thing1 = {a: null, b: [null, null, null]};
let thing2 = {a: null, b: [null, null, 'value']};
let thing3 = {a: 'something', b:[null, null, null]};

let flag = false;
for( [key,val] of Object.entries(thing1) ){
  if(val && !Array.isArray(val)){
    console.log(val);
    flag = true;
  } else if(Array.isArray(val)){
    for(let i = 0; i < val.length; i++){
      if(val[i] !== null){
        console.log( val[i] );
        flag = true;
      }
    }
  }
}

对于 thing1 保持 false,标志设置为 true 并记录 thing2 和 thing3 的值。

【讨论】:

  • 谢谢,但如果我有 obj => arr => obj => arr; {1:null, 2:[ { [] }, ] }
猜你喜欢
  • 2020-02-07
  • 2019-09-08
  • 2022-06-16
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
相关资源
最近更新 更多