Hello! Thank you for reading. I have 2 examples of code. The first one works exactly as intended, and the second one uses an unnecessary object that hampers its functioning. However, I don’t know why it’s not working, and I feel understanding that is key to my Javascript education. Any insight would be appreciated!
WORKING CODE:
const generateRandomNumber = num => {
// Generates number from 0 --> num - 1
return Math.floor(Math.random() * num);
}
const arrObj = {
greeting: ['Hello', 'Hiya', 'Howdy', 'Hellur', 'Hallo'],
adj: ['Smelly', 'Strange', 'Angry', 'Scary', 'Weird'],
noun: ['Human', 'Gorilla', 'Beast', 'Munchkin', 'Animal']
}
const newArr = [];
for (let item in arrObj) {
let optionIndex = generateRandomNumber(arrObj[item].length);
switch(item) {
case 'greeting':
newArr.push(arrObj[item][optionIndex]);
break;
case 'adj':
newArr.push(arrObj[item][optionIndex]);
break;
case 'noun':
newArr.push(arrObj[item][optionIndex]);
break;
default:
newArr.push('');
}
}
const formatArr = arr => {
let formatted = arr.join(' ');
console.log(formatted);
}
formatArr(newArr);
FAILING CODE:
const overObj = {
generateRandomNum(num) {
return Math.floor(Math.random() * num.length);
},
arrObj: {
greeting: ['Hello', 'Hiya', 'Howdy', 'Hellur', 'Hallo'],
adj: ['Smelly', 'Strange', 'Angry', 'Scary', 'Weird'],
noun: ['Human', 'Gorilla', 'Beast', 'Munchkin', 'Animal']
},
newArr: [],
formatArr(arr) {
arr.join(' ');
console.log(arr);
}
}
for (let item in overObj.arrObj) {
let optionIndex = overObj.generateRandomNum(overObj.arrObj[item].length);
switch(item) {
case 'greeting':
overObj.newArr.push(overObj.arrObj[item][optionIndex]);
break;
case 'adj':
overObj.newArr.push(overObj.arrObj[item][optionIndex]);
break;
case 'noun':
overObj.newArr.push(overObj.arrObj[item][optionIndex]);
break;
default:
overObj.newArr.push('');
}
}
overObj.formatArr(overObj.newArr);
ERROR RELATED TO FAILING CODE (returning undefined):
[Running] node "c:\Users\jayyy\OneDrive\Desktop\Projects\JS Portfolio Project\newTry.js"
[ undefined, undefined, undefined ]
[Done] exited with code=0 in 0.432 seconds
In-depth responses are appreciated. Thanks again!