【发布时间】:2019-04-14 10:28:04
【问题描述】:
我是 Javascript 新手,我必须为我的家庭作业解决一项任务。 我必须从一个类中的数据库中获取特定数据(专辑标题和专辑 ID),将此数据返回到另一个类并在那里使用模板文字对其进行格式化。
getAlbums: function (db) {
sql = `SELECT DISTINCT Title, AlbumId FROM albums`;
let title = [], id = [];
db.all(sql, [], (err, rows) => {
if (err) throw err;
rows.forEach((row)=>{
title.push(row.Title);
id.push(row.AlbumId);
});
});
return [title, id];
}
这是我从数据库中获取数据的函数。当我在 db.all 函数中放置 console.log(title) 时,titles 数组被正确填充。但它不会将此数组返回给其他类,我得到一个错误:
TypeError:无法读取未定义的属性“forEach”。
如果我将console.log(title) 放在db.all 函数之外,它会返回一个空数组并且我不会收到错误消息。输出只是undefined。
我其他类中的方法调用:
showAlbum: function (db) {
let albumID = model.getAlbums(db);
//let album = "";
//let albId = "";
albumID.forEach((element) => {
//album = element.title;
//albId = element.id;
console.log(`Albumtitle: ${element.title} AlbumID: ${element.id}\n`);
});
}
如何正确传输数组?
【问题讨论】:
标签: javascript arrays foreach sqlite