Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组中的对象传递到查询器列表选项中_Javascript_Node.js_Ecmascript 6_Promise_Spotify - Fatal编程技术网

Javascript 将数组中的对象传递到查询器列表选项中

Javascript 将数组中的对象传递到查询器列表选项中,javascript,node.js,ecmascript-6,promise,spotify,Javascript,Node.js,Ecmascript 6,Promise,Spotify,我有一个简单的node.js应用程序来搜索Spotify API中的歌曲。因为有不同艺术家的同名歌曲,我希望用户能够使用inquirer软件包从列表中选择所需的曲目 下面的方法将把搜索结果中的数据添加到一个对象中,并将它们推送到一个数组中。然后我想将该数组传递到inquirer提示符中,用户可以在那里选择一个项目 选中后,我需要能够从trackData对象获取所有数据,无论用户选择哪个对象 如果有更好的方法,请告诉我。谢谢,s.o let trackFetcher = ne

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

下面的方法将把搜索结果中的数据添加到一个对象中,并将它们推送到一个数组中。然后我想将该数组传递到inquirer提示符中,用户可以在那里选择一个项目

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

如果有更好的方法,请告诉我。谢谢,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
                });
            });

对象数组应包含具有两个键的对象:名称和值,其中名称是要显示的消息,并为将要选择的对象赋值

通过将我的对象更改为:

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