从JSON提取数组元素(javascript)

时间:2018-08-19 15:32:09

标签: javascript arrays json element

我正在尝试处理从API网址接收的JSON数据(这是我第一次处理此类工作)

以下函数返回一个包含20个元素的数组的诺言:

const articles = () => {
return fetch(url)
.then(res => res.json())
.then(post => post.articles);
};

控制台视图:

enter image description here

现在,我想从数组中提取元素-我尝试过类似的操作:

  

articles()[0] .name

但是这不起作用,我不确定是否有其他解决方法?感谢您的帮助。谢谢

1 个答案:

答案 0 :(得分:2)

您的articles功能会返回一个承诺。您必须消费承诺(more on MDN):

articles().then(articleArray => {
    console.log(articleArray);
});

或在async function内:

const articleArray = await articles();
console.log(articleArray);

旁注:您的fetch代码缺少对HTTP成功的检查(HTTP失败不是拒绝)。到目前为止,您不是唯一错过这张支票的人,以至于I've written a post on my anemic blog about it。带有支票:

const articles = () => {
    return fetch(url)
    .then(res => {
        if (!res.ok) {
            throw new Error("HTTP error " + res.status);
        }
        return res.json();
    })
    .then(post => post.articles);
};