Javascript 如何获得所有的';项目';从GitHub获取API数组?

Javascript 如何获得所有的';项目';从GitHub获取API数组?,javascript,async-await,github-api,Javascript,Async Await,Github Api,我正在尝试获取存储库列表,也就是说,我的代码使用过滤器搜索存储库 Javascript会得到一个结果,其中有多个项目包含每个存储库的数据,这些存储库使用URL:https://api.github.com/search/repositories?q=piccolowen+输入:名称 我可以执行console.log(result.items[0].name)以获取第一个存储库的name值,但我希望将搜索中的所有存储库打印到控制台。我还希望代码能够打印所有存储库及其值,而不管有多少repo适合过滤

我正在尝试获取存储库列表,也就是说,我的代码使用过滤器搜索存储库

Javascript会得到一个结果,其中有多个项目包含每个存储库的数据,这些存储库使用URL:
https://api.github.com/search/repositories?q=piccolowen+输入:名称

我可以执行
console.log(result.items[0].name)
以获取第一个存储库的
name
值,但我希望将搜索中的所有存储库打印到控制台。我还希望代码能够打印所有存储库及其值,而不管有多少repo适合过滤器

以下是我要添加到的当前代码:

window.onload = func()
    async function func() {
        const url = 'https://api.github.com/search/repositories?q=piccolowen+in:name'
        const response = await fetch(url);
        const result = await response.json();
        const apiresult = document.getElementById('thisisanid') 
        console.log(result)
}
有什么办法可以帮你吗

编辑: 我通过这个问题的while循环找到了问题的答案:

constresultlength=Object.keys(result.items).length
var arrnum=0
while(arrnum
编辑2:
我上次编辑的代码将使页面崩溃。仍在为这个巨大的错误寻找解决方案。

因为
结果。items
返回一个对象数组,您可以使用它返回所有项目名称,即:

result.items.map(item => item.name)
如果您想简单地过滤掉一些属性,您也可以这样做。假设您想要一个只包含其
名称
id
说明
的项目数组,则可以执行以下操作:

result.items.map(({ name, id, description }) => ({ name, id, description }))
异步函数func(){ 常量url=https://api.github.com/search/repositories?q=piccolowen+在:姓名' const response=等待获取(url); const result=wait response.json(); //返回项名称的数组 log(result.items.map(item=>item.name)); //返回具有选定键的对象数组 log(result.items.map(({name,id,description})=>({name,id,description})); }
func()
该数组具有
映射函数
,该函数接受回调函数。它遍历所有元素,调用回调函数,并将数据推送到新创建的数组中

map()方法创建一个新数组,其中填充了对调用数组中的每个元素调用所提供函数的结果

更多信息:

window.load=main();
const nameMapper=(item)=>item.name;
const liMapper=(item)=>`
  • ${item.name}
  • `; 异步函数main(){ 常量url=”https://api.github.com/search/repositories?q=piccolowen+“姓名”; const result=wait fetch(url)。然后((x)=>x.json()); const names=result.items.map(nameMapper); const apireult=document.getElementById(“thisisanid”); apireult.textContent=名称; const ul=document.getElementById(“列表”); ul.innerHTML=result.items.map(liMapper.join)(“”); }
    #列表li{
    列表样式:无;
    填充物:5px10px;
    边框:1px纯黑;
    最大宽度:400px;
    }
    
    
    您可以像这样使用

    let list = document.getElementById('list');
    let htmlTemplate = result.items.map(function(item) {
       return item.name
    }).join("")
    
    list.insertAdjacentHTML('beforeend', htmlTemplate)
    
    也可以使用模板文本 敌人的例子 返回items.map()中的值时

    const array1 = [1, 4, 9, 16];
    
    // pass a function to map
    const map1 = array1.map(x => x * 2);
    
    console.log(map1);
    // expected output: Array [2, 8, 18, 32]
    
    let list = document.getElementById('list');
    let htmlTemplate = result.items.map(function(item) {
       return item.name
    }).join("")
    
    list.insertAdjacentHTML('beforeend', htmlTemplate)
    
    return `${item.id}: ${item.name}`