DEV Community

Discussion on: Built-in-like Range in JavaScript

Collapse
 
jonrandy profile image
Jon Randy 🎖️

Could even expand it to:

1[to](19, {step: 2})) // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
Enter fullscreen mode Exit fullscreen mode

etc.

Collapse
 
didof profile image
Francesco Di Donato • Edited

It's an amazing idea, Jon. I find the second option more readable. Or, at least, it feels "righter". But I'm not sure it could work since a function cannot be used as a key in a plain object.
Anyway, I'd like to work on it, together. Would you like to?

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️

I already did a POC in about 5 lines of code - works perfectly

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️

Still trying to think of a way to make the second syntax work without unsafe monkey patching. I'm not sure it's possible. My POC uses the a[to](b) syntax. Basically, to is a method on the number prototype... nothing particularly fancy going on

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️

I think there is a way to do the 2nd syntax... I'll get back to you

Thread Thread
 
jonrandy profile image
Jon Randy 🎖️ • Edited

It works 👍 And it's safe

Thread Thread
 
didof profile image
Francesco Di Donato

I'm glad to read it. If you like to share I'd love to see it!