我試圖從URL中使用nodejs(使用cheerio)打開圖形元數據, 使用下面的代碼。在nodejs中打開圖形的刮擦算法
我有這樣的事情來填補: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函數......任何建議?謝謝
樂意提供幫助,但如果您發佈實際可運行的代碼,則會得到更快的響應。任何想要幫助的人都需要重新構建程序的其餘部分。 –