I have a new wall I’m against.
I thought I got how it worked for running thru an array and giving a random element. But the code gives me an error in console:
TypeError: Cannot read property 'length' of undefined
at getRandomKanji (kanjitab.js:40)
This is the code I’m trying to recreate the commented part of the code but for my json array.
var myfetch = fetch("https://kanjialive-api.p.rapidapi.com/api/public/kanji/all", {
"method": "GET",
"headers": {
"x-rapidapi-host": "",
"x-rapidapi-key": ""
}
})
var i, x = "";
/** Parse response object
* returns object parsed from json
*/
const getJsonFromRes = (res) => res.json();
/** Logs some data.
* returns undefined
*/
const logData = (data) => console.log(data[2].kanji.character);
/** Ignores its data parameter. Attempts to set an element to an uninitialized variable.
*/
//const accessKanji = (data) => {
// let chars = data.map(el => el.kanji.character + "<br>").join("");
// document.getElementById('kanji').innerHTML = chars;
// }
console.log(x)
// print error to console. returns undefined.
const logError = (err) => console.log(err);
// Example comment for what I want to achieve
//var myArray = ['January', 'February', 'March'];
//var rand = myArray[Math.floor(Math.random() * myArray.length)];
//console.log(rand);
const getRandomKanji = (data) => {
let charss = getRandomKanji([Math.floor(Math.random() * data.length)]);
console.log(charss);
}
myfetch
.then(getJsonFromRes)
.then(logData)
.then(getRandomKanji)
//.then(accessKanji)
.catch(logError);