Javascript在中创建对象,如果不继续
这是我的代码:Javascript在中创建对象,如果不继续,javascript,Javascript,这是我的代码: 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]
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
有什么建议吗?不是Javascript中的函数,因此您可以使用
typeof oprand
考虑这一点:
if(typeof kpiValues[v.category][cleanname][0] === "undefined") {
typeof
在Javascript中不起作用,因此使用类似于typeof kpiValues[v.category][cleanname][0]
。如果typeof(kpiValues[v.category]
未定义,则首先如果从未输入块,并且kpiValues[v.category][cleanname]
可能永远不会被创建。完全正确的约翰尼-这是我的问题的一部分。这帮助我找到了我的实际问题:这(部分)修复了我的问题,至少帮助我找到了我的实际问题:typeof(kpiValues[v.category][cleanname]==“undefined”**)