我正在使用twitter annotations api的最新草稿。數據的例子有點貌似從JavaScript散列中獲取密鑰
status {
annotations : [
{myAnnotationType:{myKey:myValue}},
{someoneElsesAnnotationType:{theirKey:theirValue}},
]
}
現在我要檢查狀態,看它是否有與它myAnnotationType註解。如果註釋是散列而不是數組,我只能寫var ann = status.annotations.myAnnotationType。但它不是我寫的這個:
function getKeys(obj){
var keys = [];
for (key in obj) {
if (obj.hasOwnProperty(key)) { keys[keys.length] = key; }
}
return keys;
}
function getAnnotation(status, type){
for(var i=0;i<status.annotations.length;i++){
var keys = getKeys(status.annotations[i]);
for(var j=0;j<keys.length;j++){
if(keys[j] == type){
return status.annotations[i];
}
}
}
}
var ann = getAnnotation(status, "myAnnotationType");
必須有更好的辦法!在那兒?
PS我不能使用jquery或任何東西,因爲這是JS在卡哈小部件使用和容器不支持外部庫