在函数(作为字符串)javascript中引用数组项

在函数(作为字符串)javascript中引用数组项,javascript,arrays,Javascript,Arrays,我创建了一个字符串数组,格式为“monthX”,其中的数字在整个数组中递增 我有一个函数,我试图引用数组的一个特定项,但它总是以未定义的形式出现。这是我的密码: function listCategories() { categoryList.innerHTML = "" for (var propertyName in categoryObject) { var rowHTML = "<div>" rowHTML += "<s

我创建了一个字符串数组,格式为“monthX”,其中的数字在整个数组中递增

我有一个函数,我试图引用数组的一个特定项,但它总是以未定义的形式出现。这是我的密码:

function listCategories() {
    categoryList.innerHTML = ""

    for (var propertyName in categoryObject) {
        var rowHTML = "<div>"
        rowHTML += "<span class = 'category'>" + categoryObject[propertyName].name + "</span>"
        rowHTML += "<span class = '" + monthList[3] + "'><input/></span>"
        rowHTML += "</div>"
        categoryList.innerHTML += rowHTML
    }
}

//Months to load in
for (var i=0; i<24; i++) {
    monthList[i] = "month" + (i + startingMonth)
}
函数列表类别(){
categoryList.innerHTML=“”
for(类别对象中的var propertyName){
var rowHTML=“”
rowHTML+=“”+categoryObject[propertyName]。名称+“”
行HTML+=“”
行HTML+=“”
categoryList.innerHTML+=行HTML
}
}
//要加载的月数
对于(var i=0;i嗯,有两个问题:
什么时候调用“listCategories()”?
在你设定月清单之前还是之后

还有,你有没有先设定全球的月份列表

    //globalize monthList array to be usable in functions
var monthList;

function listCategories() {
    categoryList.innerHTML = ""

    for (var propertyName in categoryObject) {
        var rowHTML = "<div>"
        rowHTML += "<span class = 'category'>" + categoryObject[propertyName].name + "</span>"
        rowHTML += "<span class = '" + monthList[3] + "'><input/></span>"
        rowHTML += "</div>"
        categoryList.innerHTML += rowHTML
    }
}

//Months to load in
for (var i=0; i<24; i++) {
    monthList[i] = "month" + (i + startingMonth)
}

//do NOT CALL listCategories prior this line!!
//将monthList数组全球化,以便在函数中使用
var月表;
函数listCategories(){
categoryList.innerHTML=“”
for(类别对象中的var propertyName){
var rowHTML=“”
rowHTML+=“”+categoryObject[propertyName]。名称+“”
行HTML+=“”
行HTML+=“”
categoryList.innerHTML+=行HTML
}
}
//要加载的月数

对于(var i=0;i,在您向我们展示的代码中,您从未声明
monthList
或将其定义为数组

function listCategories() {
    categoryList.innerHTML = ""

    for (var propertyName in categoryObject) {
        var rowHTML = "<div>"
        rowHTML += "<span class = 'category'>" + categoryObject[propertyName].name + "</span>"
        rowHTML += "<span class = '" + monthList[3] + "'><input/></span>"
        rowHTML += "</div>"
        categoryList.innerHTML += rowHTML
    }
}

var monthList = [],
    startingMonth = 1;

//Months to load in
for (var i=0; i<24; i++) {
    monthList[i] = "month" + (i + startingMonth)
}
函数列表类别(){
categoryList.innerHTML=“”
for(类别对象中的var propertyName){
var rowHTML=“”
rowHTML+=“”+categoryObject[propertyName]。名称+“”
行HTML+=“”
行HTML+=“”
categoryList.innerHTML+=行HTML
}
}
var monthList=[],
开始月份=1;
//要加载的月数

对于(var i=0;i此问题仍然存在。您已声明
monthList
,但尚未将其定义为数组。这将导致类似“TypeError:无法将未定义的转换为对象”的错误谢谢你,itsid!你给了我答案,你说://不要在这行之前调用listCategories!!@JAAulde,uups你是对的…很抱歉我错过了,那天我有太多的php,你可以像那样把对象放在以前的布尔变量中。