【问题标题】:TypeError: Cannot read property 'forEach' of undefined , javascriptTypeError:无法读取未定义的属性'forEach',javascript
【发布时间】:2020-06-18 12:44:20
【问题描述】:

试图通过字典并获取值并获取其中的每个数组值来操作它们但是得到这个错误,起初我认为这可能是因为我忘记了定义字典的行的分号但错误仍然存​​在。



 getPieChartSeries(logsList){
   let devidedLogs = this.divideLogsByExitCode(logsList);
   console.log(devidedLogs);
   let pieChartSeries = [];
   Object.values(devidedLogs).array.forEach(element => {
     pieChartSeries.push(this.getPrecentageOfLogType(element,logsList))
   });
   console.log(pieChartSeries)
 }

 getPrecentageOfLogType(logsList,logsOfTypeList){
   let numOflogs = logsList.length
   let numOflogsOfType = logsOfTypeList.length
   let precentageOfLogType = Math.round((numOflogsOfType  / numOflogs ) * 100)

   return precentageOfLogType
 }
 getCurrentTime(){
   var d = new Date();
   return d.toLocaleString()
 }

devidedLogs 是



{failedFaults: Array(0), failedProbesLogs: Array(1), failedRollbackLogs: Array(0), rollbackedLogs: Array(0), selfHealedLogs: Array(3)}failedFaults: []failedProbesLogs: [{…}]failedRollbackLogs: []rollbackedLogs: []selfHealedLogs: (3) [{…}, {…}, {…}]__proto__: Object

【问题讨论】:

  • 你的devidedLogs 数据是什么?
  • 请提供输入数据
  • {failedFaults: Array(0), failedProbesLogs: Array(1), failedRollbackLogs: Array(0), rollbackedLogs: Array(0), selfHealedLogs: Array(3)}
  • 但是您的 devidedLogs 对象中没有 array 属性
  • devidedLogs 字典中的每个值都是一个数组(0 所以当我遍历它的值时,我可以对它们中的每一个执行 .array

标签: javascript reactjs foreach


【解决方案1】:

我认为您在迭代错误的变量。

已经.values()返回数组了,以后不用再添加.array了。

所以你的代码应该更新为以下几行:

getPieChartSeries(logsList){
 let devidedLogs = this.divideLogsByExitCode(logsList);
 console.log(devidedLogs);
 let pieChartSeries = [];
 Object.values(devidedLogs).forEach(element => {
 pieChartSeries.push(this.getPrecentageOfLogType(element,logsList))
 });
 console.log(pieChartSeries)
}

【讨论】:

    【解决方案2】:

    Object.values(devidedLogs) 将返回一个包含所有 Object 值的数组,等效地,您可以使用 Object.keys(devidedLogs) 获取键或使用 Object.entries(devidedLogs) 获取键值元组数组。

    还要检查 Object 类的 docs :)

    【讨论】:

    • 通过获取键,我们将再次需要解析键并获取每个键前面的值。因为根据要求,我们需要日志的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2020-03-25
    相关资源
    最近更新 更多