我有一个对象,它可能有多达31个属性,所有这些属性都需要多次检查值。因此,我创建了一个数组,它包含这些属性的名称,这样就不必将每个属性赋值给自己的变量,而是可以使用数组中的一个循环来检查这个属性的值。
var dates = ["first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth", "tenth", "eleventh", "twelfth", "thirteenth", "fourteenth", "fifteenth", "sixteenth", "seventeenth", "eighteenth", "nineteenth", "twentieth", "twentyfirst", "twentysecond", "twentythird", "twentyfourth", "twentyfifth", "twentysixth", "twentyseventh", "twentyeighth", "twentyninth", "thirtieth", "thirtyfirst"];
for (var k=3; k<=lastrw; k++){
for (var l = 0; l < 31; l++){
var mydate = dates[l];
if (typeof holidayObjects[k-3].mydate != undefined){
switch (holidayObjects[k-3].mydate){
case "HD": break;
case "H": break;
case "BH": break;
case "": break;
case undefined: break;
default: ss.getSheetByName(mysheet).getRange(k,(l+2)).setValue("");
}
}
}
}然而,这似乎从未起作用,请记住,某些属性将永远不会被定义--例如,它可以首先定义,但第三,不能定义,因此使用if语句。
是否有任何理由来解释为什么这不应该起作用,如果是的话,我将如何去修复它和为什么?
发布于 2014-04-02 17:44:04
使用holidayObjects[k-3][mydate]而不是holidayObjects[k-3].mydate
使用.mydate时,您试图访问属性"mydate“,在使用[mydate]时,将尝试访问”第一“、”第二“、”第三“、.
https://stackoverflow.com/questions/22816457
复制相似问题