我可能会对此表示不满,但我正在尝试解决这个问题:)嘿,我得到了这个......
parser(body, (err, result)=> {
if(result.hasOwnProperty('feed')){
var result = JSON.parse(JSON.stringify(result.feed.entry));
for(var i = 0; i < result.length; i++){
var tube = result[i];
var tLink = tube.link[0].$.href;
var title = tube.title;
var id = tube['yt:videoId'][0];
var pic = tube['media:group'][0]['media:thumbnail'][0].$.url;
var results = {
url : tLink,
title : title[0],
thumb: pic,
id: id
};
//WORKS FROM HERE UP NO ISSUES..trying to combine them all into one array of objects so below this is where I'm not having any luck :)
var res = [];
for (var j = 0; j < results; j++){
console.log(results[j]);
res.push(results[j]);
}
this.sendSocketNotification("TUBE_RESULT", res);
它无法正常工作,我试图在此找到任何信息....
它返回单个对象,但我希望它们都在一个数组中......
建议或帮助将非常感谢!! :)
这就是我想要实现的目标:
这就是我目前所得到的:
答案 0 :(得分:0)
您将结果定义为:
var results = {
url : tLink,
title : title[0],
thumb: pic,
id: id
};
然后
for (var j = 0; j < results; j++){
console.log(results[j]);
res.push(results[j]);
}
结果是一个对象,你需要在for语句中使用整数。也许你想要的是结果而不是结果??
答案 1 :(得分:0)
您应该遍历对象并将它们放入数组中。我使用对象的keys
数组来实现此目的。
var results = {
url : tLink,
title : title[0],
thumb: pic,
id: id
};
var arr = Object.keys(results).map(function (key) {
return results[key];
});
res.push(arr[j]);
答案 2 :(得分:0)
我想感谢你们所有人的帮助,答案是:
parser(body, (err, result) => {
if (result.hasOwnProperty('feed')) {
var entries = JSON.parse(JSON.stringify(result.feed.entry)),
results = [];
for (var i = 0, entry; entry = entries[i]; i++) results.push({
'tLink': entry.link[0].$.href,
'title': entry.title[0],
'id': entry['yt:videoId'][0],
'pic': entry['media:group'][0]['media:thumbnail'][0].$.url
});
答案 3 :(得分:-1)
尝试更改for循环:
var res = [];
for (var j = 0; j < results; j++){
console.log(results[j]);
res.push(results[j]);
}
到for-in循环:
var res = [];
for (var j in results){
console.log(j + ": " + results[j]);
res.push(results[j]);
}