将数组中的对象传递给查询者列表选项
Pass objects in array into inquirer list choices
我有一个简单的 node.js 应用程序可以在 Spotify API 中搜索歌曲。因为有不同艺术家的同名歌曲,我希望用户能够 select 使用 inquirer 包从列表中找到所需的曲目。
下面的方法会将搜索结果中的数据添加到一个对象中,并将它们推送到一个数组中。然后我想将该数组传递给询问者提示,用户可以在其中 select 一个项目。
当 selected 时,我需要能够从 trackData 对象获取所有数据,无论用户创建哪个 selection。
如果有更好的方法,请告诉我。谢谢s.o.
let trackFetcher = new Promise((resolve, reject) => {
for(let track of data.tracks.items)
{
var trackData = {
name: track.name,
album: track.album.name,
artist: track.artists[0].name,
url: track.external_urls.spotify,
}
tracks.push(trackData);
resolve(tracks);
}
});
trackFetcher.then((tracks) => {
inquirer.prompt([
{
type: 'list',
message: 'Select a track from the list',
choices: tracks,
name: "track"
}]).then(function(selected) {
//Do stuff with the result
});
});
对象数组应包含具有 2 个键的对象:名称和值,其中名称是要显示的消息并为将被选中的对象赋值。
通过将我的对象更改为:
来修复
var trackData = {
name : track.name + " by: " + track.artists[0].name,
value : {
name: track.name,
album: track.album.name,
artist: track.artists[0].name,
url: track.external_urls.spotify,
}
}
我有一个简单的 node.js 应用程序可以在 Spotify API 中搜索歌曲。因为有不同艺术家的同名歌曲,我希望用户能够 select 使用 inquirer 包从列表中找到所需的曲目。
下面的方法会将搜索结果中的数据添加到一个对象中,并将它们推送到一个数组中。然后我想将该数组传递给询问者提示,用户可以在其中 select 一个项目。
当 selected 时,我需要能够从 trackData 对象获取所有数据,无论用户创建哪个 selection。
如果有更好的方法,请告诉我。谢谢s.o.
let trackFetcher = new Promise((resolve, reject) => {
for(let track of data.tracks.items)
{
var trackData = {
name: track.name,
album: track.album.name,
artist: track.artists[0].name,
url: track.external_urls.spotify,
}
tracks.push(trackData);
resolve(tracks);
}
});
trackFetcher.then((tracks) => {
inquirer.prompt([
{
type: 'list',
message: 'Select a track from the list',
choices: tracks,
name: "track"
}]).then(function(selected) {
//Do stuff with the result
});
});
对象数组应包含具有 2 个键的对象:名称和值,其中名称是要显示的消息并为将被选中的对象赋值。
通过将我的对象更改为:
来修复 var trackData = {
name : track.name + " by: " + track.artists[0].name,
value : {
name: track.name,
album: track.album.name,
artist: track.artists[0].name,
url: track.external_urls.spotify,
}
}