javascript - 将数组中的对象传递到查询者列表选项中

标签 javascript node.js ecmascript-6 promise spotify

我有一个简单的 node.js 应用程序来搜索 Spotify API 中的歌曲。因为有不同艺术家的同名歌曲,所以我希望用户能够使用查询器包从列表中选择所需的轨道。

下面的方法会将搜索结果中的数据添加到一个对象中,并将它们插入一个数组中。然后,我想将该数组传递到查询提示符中,用户可以在其中选择一个项目。

选择后,我需要能够从 trackData 对象获取所有数据,无论用户做出哪个选择。

如果有更好的方法,请告诉我。谢谢,所以。

           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,
                        }
                    }

关于javascript - 将数组中的对象传递到查询者列表选项中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46210279/

相关文章:

javascript - element.className 只返回 "undefined"

javascript - Changing::before Edge 中的伪样式不会按预期重绘视觉更新

javascript - 根据条件 knockout 渲染选择选项

javascript - 为什么这个尾调用优化函数失败并出现最大调用堆栈大小超出错误?

javascript - ES2015 导入 jQuery 在测试用例中不起作用

javascript - 是否可以将多个导入设置为数组?

基于另一个数组的javascript排序数组

javascript - S3 下载文件名中带有逗号的图像会导致 "net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION"

node.js - Selenium 与 PhantomJs 和 NodeJs

node.js - NodeJs : Using async for request url - Post method sending response before execution of all urls