TypeError:无法读取未定义的属性“forEach”,javascript
2020-06-18
211
尝试遍历字典并获取值并获取其中的每个数组值来操作它们但出现此错误,起初我以为可能是因为我忘记了定义字典的行中的分号但错误仍然存​​在。
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
2个回答
我认为您正在迭代错误的变量。
已经 .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)
}
Minal Shah
2020-06-18
Object.values(devidedLogs)
将返回所有 Object 值的数组,同样地,您可以使用
Object.keys(devidedLogs)
获取键,或使用
Object.entries(devidedLogs)
获取键值元组数组。
另请查看 Object 类的 文档 :)
Caro
2020-06-18