Call method DataTable(config); //Semuanya baik
Kemudian muatkan JSON, function fetchers(apiUrl) //semuanya baik
Kemudian cetak JSON yang saya terima dalam konsol //semuanya baik
Kemudian saya cuba menggunakan Array.prototype.map() (sebelum itu saya menggunakan data setempat) dan kemudian saya mendapat ralat ini....
Tidak ditangkap (dalam janji) TypeError: datas.map bukan fungsi
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 }
Sebelum ini, saya menggunakan data tempatan dan mencipta jadual daripadanya, semuanya baik-baik saja, tetapi dalam JSON yang dimuat turun, ini berlaku.
Saya berbesar hati untuk mendapatkan cadangan tentang ralat ini, bukan sekadar penyelesaian,
Baca juga nasihat tentang json
对象没有function
jenis sifat
Dan cuba hancurkan objek json seperti ini
const {data} = newData; console.log(data); // 一切正常,简单的对象数组 data.map((value) => {/*work with JSON...../*});//错误与上述相同
所以从api响应中看,你没有一个数组,而是一个对象。
所以你需要遍历数据对象中的所有属性。你可以使用Object.values()将所有属性值转换为数组,然后使用map方法。