@quintendewilde wrote:
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);