在中创建对象的Javascript(如果不继续)

Javascript creating object in if not carrying over

本文关键字:如果不 继续 Javascript 创建对象      更新时间:2023-09-26

这是我的代码:

var cleanname = v.name.replace(/'s/g, "_").toLowerCase();
if(typeof(kpiValues[v.category]) === "undefined") {
  kpiValues[v.category] = {};
  if(typeof(kpiValues[v.category][cleanname] === "undefined")) {
    kpiValues[v.category][cleanname] = [];
  }
}
if(departments !== "default") {
  if(typeof(kpiValues[v.category][cleanname][0]) === "undefined") {
    kpiValues[v.category][cleanname][0] = {};
    kpiValues[v.category][cleanname][0].value = 0;
  }
}

此行:

if(typeof(kpiValues[v.category][cleanname][0]) === "undefined") {

给了我一个错误,我完全不明白为什么。在第一个if块中,我确保它构建出对象/数组,但由于我无法理解的原因,它抛出了以下错误:

TypeError: Cannot read property '0' of undefined

有什么建议吗?

typeof不是Javascript中的函数,因此可以像一样使用

typeof oprand

考虑一下:

if(typeof kpiValues[v.category][cleanname][0]  === "undefined") {