[英]rest api get an array of javascript objects
I am consuming this public api, the problem I have is that it is selecting an array of objects within the object field and I cannot access these values in the console, it shows me this (10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]我正在使用这个公共 api,我遇到的问题是它正在选择 object 字段中的对象数组,我无法在控制台中访问这些值,它向我显示了这个 (10) [{…},{…}, {…}、{…}、{…}、{…}、{…}、{…}、{…}、{…}]
const url = https://catfact.ninja/facts
;常量 url = https://catfact.ninja/facts
;
const getFact = () => {
return fetch('https://catfact.ninja/facts' ,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}})
.then(res => res.json())
}
const createFactDiv = (fact) => {
const factContainer = document.createElement('div');
const setup = document.createElement('p');
setup.innerText = fact.data
console.log(fact.data);
factContainer.append(setup);
return factContainer
}
const appendFact = (factDiv) => {
const factContainer = document.getElementById('factContainer');
factContainer.append(factDiv);
}
//This is unused
/*
document.addEventListener('DOMContentLoaded', () => {
})
*/
getFact().then ((fact) => {
const factDiv = createFactDiv(fact);
appendFact(factDiv);
})
console.log(JSON.stringify(fact.data));
You can do a console.log(JSON.stringify(fact.data))你可以做一个 console.log(JSON.stringify(fact.data))
I think you're getting tripped up because getFact()
is actually returning a result set that contains a number of (potentially useful) properties.我认为您被绊倒了,因为getFact()
实际上返回的结果集包含许多(可能有用的)属性。 It should probably be called getFacts()
, because the .data
property contains an array of multiple facts.它可能应该被称为getFacts()
,因为.data
属性包含多个事实的数组。
Perhaps try looping over the data array and setting setup.innerText
to fact.fact
rather than fact.data
?也许尝试循环遍历数据数组并将setup.innerText
设置为fact.fact
而不是fact.data
?
const getFacts = () => {
return fetch('https://catfact.ninja/facts' ,
{
method: 'GET',
headers: {
'Content-Type': 'application/json'
}}).then(res => res.json())
}
const createFactDiv = (fact) => {
const factContainer = document.createElement('div');
const setup = document.createElement('p');
setup.innerText = fact.fact;
console.log(fact.fact);
factContainer.append(setup);
return factContainer
}
const appendFact = (factDiv) => {
const factContainer = document.getElementById('factContainer');
factContainer.append(factDiv);
}
//This is unused
/*
document.addEventListener('DOMContentLoaded', () => {
})
*/
getFacts().then(facts => facts.data.forEach(fact => appendFact(createFactDiv(fact))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.