如何解决如何使用reduce函数获取用户的GitHub仓库总数
我正在尝试获取用户的存储库总数。这是我的代码如下:
js
const url = "https://api.github.com/users/oyerohabib/repos?per_page=50";
const fetchRepos = async () => {
response = await fetch(url);
data = await response.json();
const newData = data.reduce((total,repo) => {
const { language } = repo;
if (language) {
total += language;
}
return total;
},0);
console.log(newData);
};
fetchRepos();
这是我尝试后得到的结果 0CSSJavaScriptHTMLJavaScriptHTMLJavaScriptHTMLJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptHTMLJavaScript
注意:我期望的是 13,这是语言的总数
解决方法
您只需要在每次看到一种语言时添加 1
到 total
const response = await fetch(url);
const data = await response.json();
const newData = data.reduce((total,repo) => {
const { language } = repo;
if (language) {
total += 1;
}
return total;
},0);
这将返回 14
并且确保我添加了一个包含所有语言的数组,如果您要将所有语言附加到一个数组中:
const results = [
"CSS","JavaScript","HTML",];
编辑:
以下是获取数组中语言的方法
response = await fetch(url);
data = await response.json();
const newData = data.reduce((total,repo) => {
const { language } = repo;
if (language) {
total.push(language)
}
return total;
},[]);
console.log(newData);