Blog coding and discussion of coding about JavaScript, PHP, CGI, general web building etc.

Sunday, April 3, 2016

Break up a string in JS

Break up a string in JS


I have a script built to grab a quote from an array at random, and display it.

I'm trying to format it so it would split the quote and the author like so:

"Insert quote"
Name of person saying Quote

I've tried using split with \n and
and nothing works, even in an alert.

here is my code:

//Initalize the array  var quotes = [];    //Insert data into the array  quotes[0] = "It doesn't matter how many times you have failed, you only have             to be right once." + "Mark Cuban";  quotes[1] = "Video games are bad for you? That's what they said about rock n' roll." + "Shigeru Miyamoto";  quotes[2] = "I'd like to be known as the person who saw things from a                           different point of view to others." + "Shigeru Miyamoto";  quotes[3] = "Stay hungry, stay foolish, stay crazy."  + "Steve Jobs";  quotes[4] = "The future was uncertain, absolutely, and there were many hurdles, twists, and turns to come, but as long as I kept moving forward, one foot in front of the other, the voices of fear and shame, the messages from those who wanted me to believe that I wasn't good enough, would be stilled." + "Chris Gardner";  quotes[5] = "Running a start-up is like eating glass. You just start to like the taste of your own blood." + "Sean Parker";  quotes[6] = "I used to drink cristal, the muh'fucker's racist. So I switched gold bottles on to that Spade shit" + "Shawn Carter (Jay Z)";  quotes[7] = "I think it's better to let my work do the talking" + "Shigeru Miyamoto.";  quotes[8] = "Success is a lousy teacher. It seduces smart people into thinking they can't lose." + "Bill Gates";  quotes[9] = "We need to reengineer companies to focus on figuring out who the customer is, what's the market and what kind of product you should build." + "Eric Ries";  quotes[10] = "I have no friends and no enemies - only competitors." + "Aristole Onassis";  quotes[11] = "Working 24 hours a day isn't enough anymore. You have to be willing to sacrifice everything to be successful, including your personal life, your family life, maybe more. If people think it's any less, they're wrong, and they will fail." + "Kevin O'Leary";  quotes[12] = "My hope is to the see the benefits of my labour spread out in the community." + "W. Brett Wilson";  quotes[13] = "I'm not here to make friends; I'm here to make money." + "Kevin O'Leary";  quotes[14] = "Good artists copy, great artists steal" + "Pablo Picasso";  quotes[15] = "Welcome ladies and gentlemen to the eighth wonder of the world. The flow of the century, always timeless; HOV!" + "Shawn Carter (Jay Z)";  quotes[16] = "Today?s ?best practices? lead to dead ends; the best paths are new and untried." + "Peter Thiel";  quotes[17] = "I believe life is an intelligent thing: that things aren't random." + "Steve Jobs";  quotes[18] = "Pretty? You mean like rainbows, unicorns, and sparkles?" + "Michelle Brown";  quotes[19] = ".....and for that reason, I'm OUT!" +  "Mark Cuban";    //Splits the quote into two pieces, the quote and the person.    var quoteSplit = function (quotes) {      var split = quotes.split("+").replace("\n");  }    //Displays a quote from the array at random.    var displayQuote = quotes[Math.floor(20 * Math.random())];  document.write(displayQuote);    //END  

Answer by benjarwar for Break up a string in JS


When you're building your array, you are concatenating the quote with the author. So this:

quotes[0] = "It doesn't matter how many times you have failed, you only have to be right once." + "Mark Cuban";  

Ends up with this string being set to quotes[0]

It doesn't matter how many times you have failed, you only have to be right once.Mark Cuban  

And your split statement will not work, because the + is not included in the string. This isn't a great way of setting up your array, though. What happens if your quote contains the + symbol, for example?

A better way would be to create an object for each item:

quotes[0] = {    text: "It doesn't matter how many times you have failed, you only have to be right once.",    author: "Mark Cuban"  }  

Then you can do:

var displayQuote = quotes[Math.floor(20 * Math.random())];  document.write(displayQuote.text + '
' + displayQuote.author);

Answer by LbISS for Break up a string in JS


It's seems that + sign is not in your string. The following code:

console.log("Today?s ?best practices? lead to dead ends; the best paths are new and untried." + "Peter Thiel");  

will return to you string

Today?s ?best practices? lead to dead ends; the best paths are new and untried.Peter Thiel;

So, you just have to include + sig in your strings like that:

"Today?s ?best practices? lead to dead ends; the best paths are new and untried.+Peter Thiel"  

Answer by Onilol for Break up a string in JS


As Daniel A. White said in the comments section. You are considering + to be part of the string but you are in fact concatenating 2 strings on each index.

quotes[3] = "Stay hungry, stay foolish, stay crazy."  + "Steve Jobs";  

should be:

quotes[3] = "Stay hungry, stay foolish, stay crazy.+Steve Jobs";  

Or you could use regex ( Unfortunately I can't provide a regex example right now ) but those are two of your possible options.

Answer by Matt for Break up a string in JS


If you output any element of your array, you'll see that each entry is a single string with quote and person. Ex.

console.log(quotes[3]);  Stay hungry, stay foolish, stay crazy.Steve Jobs  

That's because + concatenates when applied to strings.

As suggested in the comments, you could use split on punctuation marks, although that would break some of your quotes.

You could do something like

quotes[3]=["Stay hungry, stay foolish, stay crazy.","Steve Jobs"];  

and output each element separately.

Answer by Steve for Break up a string in JS


Try this:

var quotes = {    1: {      quote: 'Hello world.',      author: 'Test test'    },    2: {      quote: 'Hello world 2.',      author: 'Test test 2'    },  };    // Display random quote  function displayQuote(){    var key = Math.floor(Math.random() * Object.keys(quotes).length + 1);    return quotes[key].quote + ' ' + quotes[key].author;  };    document.write(displayQuote());  


Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72

0 comments:

Post a Comment

Popular Posts

Powered by Blogger.