我知道这个问题听起来很奇怪。但这是一个奇怪的问题。让我澄清一下。
我正在使用 facebook graph api。我页面的提要以 JSON 格式返回,我这里有这段 JSON:
"message": "A3Media Uk Website is fully up and running! Tell your friends, We can't make Beautiful Websites without clients!\n - Alex Morley-Finch",
"message_tags": {
"116": [
{
"id": "514033508",
"name": "Alex Morley-Finch",
"offset": 116,
"length": 17
}
]
}
据我所知,有一个名为 message_tags
的对象,其中包含名为 116
的对象数组,该数组的索引 0 包含带有变量 id、名称、偏移量和长度
。
现在我想做的是,显然将 message
变量中的文本“Alex Morley-Finch”替换为标签 “name”:“Alex Morley-Finch”
。然后使用 ID、长度和偏移量,我可以使用 ID 将文本替换为指向该配置文件的 html 链接!
这一切看起来都非常简单,但是,我显然希望我的代码是动态的,这样代码将适用于任何位置的任何标签。
对象数组 “116”
的名称始终与其中包含的偏移量匹配。
实际问题:
如何动态获取对象数组的名称(在本例中为“116”)?
因为我的代码会是这样的(伪代码):
if message has tag
get name of tag
if message contains name of tag
replace message name using offset and length with html link tag with href = facebook url / id
end if
end if
这将给我留下“消息”的 html 表示
问题是我无法获取 message_tag 的名称,因为 id 必须执行以下操作:
// data[index] represents the current message
var json = JSON.parse(XmlHttpResponse.responseText);
json.data[index].message_tags.116[0].name;
如我们所见,这不是动态的。此代码仅适用于此标签。
那么如何在不引用 116 的情况下获取名称?有可能吗?
我正在考虑尝试遍历 1, 2, 3, 4, 5 --> 116 但那会非常耗费性能和糟糕的编码而且我什至不确定您是否可以通过变量名引用数组...。 .. ...
我真的很难过。
请帮忙!
亚历克斯
最佳答案
这将遍历所有标签。如果有多个标签,您可能需要添加代码来检查它是否是您要更改的代码。
for (var tag in message_tags) {
message_tags[tag].name = "...";
}
关于javascript - Javascript 如何从没有对象名称的对象中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834527/