7

I am receiving this JSON object:

response.myDates = [ "2017-11-19T00:00:00.000Z", "2017-12-08T00:00:00.000Z", "2017-12-25T00:00:00.000Z", "2017-12-31T00:00:00.000Z", "2018-01-01T00:00:00.000Z" ]

I would like to save all these dates (actually there are hundreds of them) in a Date array parsedDates in Javascript.

Is there a simple way to do it without a while loop?

11
  • 6
    response.myDates.map(Date) Commented Nov 9, 2017 at 10:52
  • 1
    @musefan or simply you can use map Commented Nov 9, 2017 at 10:56
  • 1
    @musefan I bet map uses but not OP going to write a loop for this. Commented Nov 9, 2017 at 10:59
  • 1
    @gurvinder372: That doesn't work, see here Commented Nov 9, 2017 at 11:00
  • 2
    @MuthuKumaran: Sometime you have to criticise to help. If someone is doing something wrong do you not tell them they are wrong? Would you just say "well done, keep doing that wrong thing you are doing". Yes, people often don't like criticism and they get in a huff about it, but they end up better off for it in the long run. Commented Nov 9, 2017 at 11:04

2 Answers 2

10

You can simple do a map to new Date();

let results = response.myDates.map(date => new Date(date))

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

2 Comments

I also thought about that, but surprisingly, this outputs an array of strings (!!) Well, at least, it does in a Stackoverflow snippet (I don't really get it)
Elegant and useful solution. Thank you!!
2

Just map over your array :

const myDates = [ "2017-11-19T00:00:00.000Z", "2017-12-08T00:00:00.000Z"],
      datesArray = myDates.map( dateString => new Date(dateString) )
      
console.log(datesArray)

Note :

Surprisingly, this Stackoverflow snippet outputs an array of strings (not sure why), but if you run it in your Chrome console or in Codepen, it outputs an array of dates, as it should

1 Comment

The SO console is it's own environment, it takes some liberties when presenting human readable versions of objects.

Your Answer

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