Silly Story Generator

I have done this practice it runs on browser but when i put in codepen i get an error. Highlighted one the function i get an error
ar customName=document.getElementById(‘customName’);
var randomize=document.querySelector(’.randomize’);
var story=document.querySelector(’.story’);

function randomValueFromArray(array){
** var random=Math.floor(Math.random()array.length);*
** return array[random];**
}
var storyText=‘It was 94 fahrenheit outside, so :insertx: went for a walk. When they got to :inserty:, they stared in horror for a few moments, then :insertz:. Bob saw the whole thing, but was not surprised — :insertx: weighs 300 pounds, and it was a hot day.’;

var insertX=[‘Willy the Goblin’,‘Big Daddy’,‘Father Christmas’];
var insertY=[‘the soup kitchen’,‘DisneyLand’,‘the White House’];
var insertZ=[‘spontaneously combusted’,‘melted into a puddle on the sidewalk’,‘turned into a slug and crawled away’];

randomize.addEventListener(‘click’,result);

function result(){
var newStory=storyText;

var xItem=randomValueFromArray(insertX);
var yItem=randomValueFromArray(insertY);
var zItem=randomValueFromArray(insertZ);

newStory=newStory.replace(‘insertx:’,xItem);
newStory=newStory.replace(‘insertx:’,xItem);
newStory=newStory.replace(‘inserty:’,yItem);
newStory=newStory.replace(‘insertz:’,zItem);

if(customName.value !== ‘’){
var name=customName.value;
newStory=newStory.replace(‘Bob’,name);
}
if(document.getElementById(“uk”).checked){
var weight=Math.round(300*0.0714286) + ‘stone’;
var temprature=Math.round((94-32)*5/9)+’ centigrade’;
newStory=newStory.replace(‘94 fahrenheit’,temprature);
newStory=newStory.replace(‘300 pounds’,weight);
}
story.textContent=newStory;
story.style.visibility=‘visible’;
}

Hi there!

So for a start, it looks like you are missing a * operator from on of the lines in that function. var random=Math.floor(Math.random()array.length); should be var random=Math.floor(Math.random()*array.length);

There are some other things I noticed too:

  • ar -> var on the first line
  • In the replace() lines, you’ve missed a colon off the placeholders. So for example insertx: should be :insertx:.
  • You got the ID of the text input wrong — getElementById(‘customName’) should be getElementById(‘customname’)

It might be worth having a look at our finished code: https://github.com/mdn/learning-area/blob/master/javascript/introduction-to-js-1/assessment-finished/main.js

Thanks man it works now