0

EDIT: My code does work - I just had a typo when I was console.logging. It uses the same technique already found in the answer here.

I have a function that should remove everything after the comma in the string:

function shortenToDate(longDate) {

  let newDate = longDate.substring(0, longDate.indexOf(","));

  return newDate;

}

^ You just need to take a chunk out of the string from the 0 index to the indexOf() the first instance of whatever character you wish to remove everything after.

I had also tried:

function shortenToDate(longDate) {

  return longDate.substring(longDate.indexOf(0, ","));

}

console.log(shortenToDate(shortenToDate("Friday May 2, 9am")));

Which didn't have any effect. It just returned Friday May 2, 9am.

6
  • 1
    Regarding your second snippet: "And that didn't return anything"... it clearly does: jsfiddle.net/wxprm41z Commented Apr 15, 2019 at 2:33
  • 2
    Here is an image to show you (answering to your now deleted comment): imgur.com/UZTF6Be. Commented Apr 15, 2019 at 2:39
  • So then my second guess was actually working. I don't know why it wasn't logging anything to the console before. Commented Apr 15, 2019 at 2:42
  • Yes, it was working. So, at the end, your question was unnecessary! What strikes me the most is that 3 high-rep users saw your question, saw that you had a working code (I hope so...) but, instead of voting to close and leave you a comment, decided to write an answer. Commented Apr 15, 2019 at 3:14
  • 1
    @GerardoFurtado I'm going to go ahead and delete this question. The question that I linked already has the correct answer with (0, longDate.indexOf(",")). Commented Apr 15, 2019 at 14:34

3 Answers 3

4

You can simply use split and take the 0th index

const shortenToDate = longDate => longDate.split(',',1)[0];
console.log(shortenToDate("Friday May 2, 9am"))

Problems

In the first snippet you're using

longDate.substring(longDate.indexOf(","), longDate.length -1);

but you want from 0th index

const  shortenToDate = longDate => longDate.substring(0,longDate.indexOf(","));

console.log(shortenToDate("Friday May 2, 9am"))

Sign up to request clarification or add additional context in comments.

1 Comment

That is what I was doing in my second snippet. I don't know why it wasn't logging anything to the console. That code is correct, then.
2

How about that with String​.prototype​.split() and Array.prototype​.shift()?

function shortenToDate(longDate) {
  let newDate = longDate.split(',');
  return newDate.shift();
}

console.log(shortenToDate("Friday May 2, 9am"))

Comments

0

It would probably be easier to use a regular expression - match a comma, followed by any characters, and replace with the empty string:

const shortenToDate = longDate => longDate.replace(/,.*/, '');
console.log(shortenToDate("Friday May 2, 9am"))

1 Comment

Why the downvote, did I make a mistake somewhere? Please let me know, I'll be happy to fix it!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.