无法理解如何实现.map()



开发程序才几个月,我是个白痴,所以请耐心等待。

我正试图使用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属性的对象。因此,您需要使用mapdata进行迭代,并返回一个包含每个元素值的新对象。

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);
}

最新更新