有时JavaScript会和我一起玩(虽然这笔交易是因为我会玩它...)下面的测试代码一直在抵制,所以我在这里寻找更多聪明人的帮助。 / p>
回答recent question我尝试创建Google Advanced Calendar API中可用的所有颜色ID的可读列表。
请求非常简单:Calendar.Colors.get()
响应是一个具有几个属性的对象,每个属性都是具有其他属性的其他对象。
我可以进入第二级,但最后 - 在这种情况下最有用 - 级别会返回一个令人不安的"未定义的" (见下面的部分日志)
那就是我的问题......
带注释的代码:
function getColorList(){
var colors = Calendar.Colors.get();
//Logger.log(JSON.stringify(colors));
for(var cat in colors){
Logger.log("category "+cat+" = "+JSON.stringify(colors[cat])+'\n\n')
}
// from there I try the "event" category
var events = colors["event"];
Logger.log('object colors["event"] = '+ JSON.stringify(events))
// then I try to get every properties in this object
for(var val in events){
Logger.log("key "+val+" = "+JSON.stringify(events[val]))
}
}
完整日志为viewable here(外部化以保持合理的短时间)
答案 0 :(得分:2)
看起来( key )可能正在指示桑迪躲避的只读定义。
在将colors
转换为字符串后,只需将自己的对象设置为循环:
var json = JSON.stringify(colors["event"]);
var myObj = JSON.parse(json);
for(var val in myObj){
Logger.log("key "+ val +" = "+JSON.stringify(myObj[val]))
}