【问题标题】:ReactJS: Check if values of array is inside object [duplicate]ReactJS:检查数组的值是否在对象内[重复]
【发布时间】:2021-07-22 17:13:08
【问题描述】:

我有一个这样的对象:

let column = ["A", "B", "C", "D"]

validation: {
    type: ...
    id: ...
    // and possible report that could exists or not
    reportA: ...
    reportB: ...
    //other possible reports added
}

我有一列有 4 个标签,我必须检查验证对象中是否存在为该列创建的报告。

所以我应该检查validation.report“column”是否存在,如果存在我将report[“column”]的值保存在状态中,我也会做一个调用函数。

如何检查验证对象中的列是否有对应的报告?

我尝试过这样的事情:

  column.forEach( value => {
        if(this.state.validation + `report${value}`){
         setState(....)
     }
   else{
    this.getData(value)
    }

它总是打印我,因为数据存在于 this.state.validation 中

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    您可以使用方括号访问对象的属性。

    const column = ["A", "B", "C", "D"];
    
    const state = {
      validation: {
        reportA: {},
        reportB: {},
      }
    }
    
    column.forEach((value) => {
      if(state.validation[`report${value}`] != null) {
        console.log(value); // prints A and B
      }
    });
    

    您在 if 子句中所做的是对“[object Object]reportA”(A 到 D)的真实检查,这始终是正确的。 + 运算符将其视为字符串。

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多