Méthode d'appel DataTable(config); //Tout va bien
Puis chargez JSON, les récupérateurs de fonctions (apiUrl) // tout va bien
Puis imprimez le JSON que j'ai reçu dans la console //tout va bien
Ensuite, j'ai essayé d'utiliser Array.prototype.map() (avant cela, j'utilisais des données locales) et j'ai ensuite eu cette erreur....
Uncaught (promis) TypeError : datas.map n'est pas une fonction
DataTable(config); const config = { //ok parent: '#usersTable', apiUrl: "https://mock-api.shpp.me/mmykola/users" }; async function fetchUsers(apiUrl) { //ok const response = await fetch(apiUrl); return await response.json(); } sync function DataTable(config) { let newData = await fetchUsers(config.apiUrl); //ok console.log(newData["data"]); //ok newData.map((value) => {/*work with JSON create code for new table...../*}); //error here }
Avant cela, j'utilisais des données locales et créais une table à partir de celles-ci, tout allait bien, mais dans le JSON téléchargé, cela se produit.
Je serais heureux de recevoir des suggestions sur cette erreur, pas seulement une solution,
Lisez également les conseils sur les json
对象没有function
propriétés de type
Et essayez de déstructurer un objet json comme celui-ci
const {data} = newData; console.log(data); // 一切正常,简单的对象数组 data.map((value) => {/*work with JSON...../*});//错误与上述相同
所以从api响应中看,你没有一个数组,而是一个对象。
所以你需要遍历数据对象中的所有属性。你可以使用Object.values()将所有属性值转换为数组,然后使用map方法。