开发程序才几个月,我是个白痴,所以请耐心等待。
我正试图使用http://jservice.io/.下面的函数首先向URL发出get请求,然后使用_.sampleSize从API获得6个随机响应,然后通过NUM_CATEGORIES迭代以获得ID(保存到categoryID变量(,然后将这些ID推送到catId数组。此外,如果我对如何工作的理解完全不正确,请纠正我。
let catId = [];
async function getCategoryIds() {
const res = await axios.get(`https://jservice.io/api/categories/?count=50`);
NUM_CATEGORIES = _.sampleSize(res.data, [n = 6]);
for (let num of NUM_CATEGORIES) {
let categoryID = num.id;
catId.push(categoryID);
}
console.log(catId);
}
getCategoryIds();
该项目的下一部分是返回一个对象,该对象包含关于如下类别的数据:
返回{title:"Math",线索:线索数组}
- 线索数组在哪里:
- [
{question: "Hamlet Author", answer: "Shakespeare", showing: null},
{question: "Bell Jar Author", answer: "Plath", showing: null},
- ]
在下面的函数中,我试图使用.map((来迭代catId数组并返回我需要的数据,但老实说,我在这里完全迷失了方向(这就是为什么我没有麻烦转到"线索"部分(。有人能帮我解释一下如何使用地图来完成这项工作吗?
async function getCategory(catId) {
const res = await axios.get(`http://jservice.io/api/clues?category=${catId}`);
catId.map(result => {
return {
question: res.data.question,
answer: res.data.answer,
title: res.data.title,
}
});
console.log(catId);
}
IIRC Axios正确返回具有data
属性的对象。因此,您需要使用map
对data
进行迭代,并返回一个包含每个元素值的新对象。
async function getCategory(catId) {
const res = await axios.get(`http://jservice.io/api/clues?category=${catId}`);
const out = res.data.map(el => {
return {
question: el.question,
answer: el.answer,
title: el.title,
}
});
console.log(out);
}