javascript - Javascript 如何从没有对象名称的对象中获取值

标签 javascript

我知道这个问题听起来很奇怪。但这是一个奇怪的问题。让我澄清一下。

我正在使用 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/

相关文章:

javascript - 在 MVC View 中使用 Knockout 多次生成并跟踪相同的模板?

Javascript继承,子类自己的私有(private)变量

javascript - 如何使用 Javascript 创建一个下拉菜单来更改您网站的背景?

javascript - 使用 Jquery 列出项目的复选框值

javascript - Angular:未收到事件发射器

javascript - 括号符号 + javascript

javascript - Javascript 中的电子书翻页器

javascript - 在功能组件初始渲染时将变量添加到存储中

javascript - 使用 JSAPI 在我自己的网站中将 linkedIn 连接添加为好友

javascript - 我如何使用 jquery 或 javascript 验证日期、月份和年份的 3 个单独输入字段?