【发布时间】:2012-10-24 13:30:27
【问题描述】:
我正在尝试使用 nodejs(使用cheerio)从 URL 获取打开的图形元数据, 使用下面的代码。
我有这个东西要填:var result={};
for (var ogCounter = 0; ogCounter < metalist.length; ogCounter++) {
if (!utils.isEmpty(metalist[ogCounter].attribs.property) && !utils.isEmpty(metalist[ogCounter].attribs.content)) {
if (metalist[ogCounter].attribs.property.indexOf('og') == 0) {
var ogname = metalist[ogCounter].attribs.property.split(':');
var property = ogname[1];
var content = metalist[ogCounter].attribs.content;
if (utils.isEmpty(result[property])) {
result[property] = content;
} else {
if (result[property].push) {
result[property].push(content);
} else {
result[property] = [result[property], content];
}
}
}
}
}
填充结果后,我在 JSon 中转换并使用此代码,我得到如下内容:
type: "video",
image: "http://i3.ytimg.com/vi/fWNaR-rxAic/mqdefault.jpg",
video: [
"http://www.youtube.com/v/fWNaR-rxAic?version=3&autohide=1",
"application/x-shockwave-flash",
"1920",
"1080"
]
但我想要的是这样的:
type: "video",
image: "http://i3.ytimg.com/vi/fWNaR-rxAic/mqdefault.jpg",
video: {
"http://www.youtube.com/v/fWNaR-rxAic?version=3&autohide=1",
{
type:"application/x-shockwave-flash",
width:"1920",
height:"1080"
}
}
我正在尝试这个“如果”,但它不起作用:
if (utils.isEmpty(result[property])) {
result[property] = content;
} else {
if (result[property].push) {
result[property].push(content);
} else {
var subresult={};
subresult[name[2]]=content;
subresult[property]=result[property] ;
result[property] = subresult;
}
}
我不想循环所有的元 2 次,而且我不擅长 javascript 和 nodejs 功能......有什么建议吗?谢谢
【问题讨论】:
-
很高兴为您提供帮助,但如果您发布可以实际运行的代码,您将获得更快的响应。任何想要提供帮助的人都必须重新构建程序的其余部分。
标签: algorithm node.js logic metadata facebook-opengraph