我试图将iTunes搜索到我的应用程序,我遇到了过滤方法的问题, 我把iTunes API带到了Array,现在我想用歌曲的标题来过滤那个Array。我不明白一件事,为什么控制台显示:
Uncaught TypeError: songs.filter is not a function
at findSongs (script.js:10)
at <anonymous>:1:1<br><br>
const endpoint = 'https://itunes.apple.com/search?term=jack+johnson&entity=song';
let songs = [];
fetch(endpoint)
.then(blob => blob.json())
.then(data => songs = data);
function findSongs(wordToMatch, songs){
return songs.filter(title => {
const regex = new RegExp(wordToMatch, 'gi');
return title.trackName.match(regex)
});
};
我在这个问题上挣扎了2个小时而且我遇到了困难。
任何想法?非常感谢你
答案 0 :(得分:3)
端点返回一个对象,该对象保存results
属性中的所有歌曲详细信息(作为数组)。
E.g。 {count : 2, results: [ {}, {} ]}
尝试.then(data => songs = data.results);
const endpoint = 'https://itunes.apple.com/search?term=jack+johnson&entity=song';
let songs = [];
fetch(endpoint)
.then(blob => blob.json())
.then(data => songs = data.results);