Hey! I'm YCMJason, a Software Engineer in London 👨💻. Love diving into tech puzzles and sharing them! 🧩
All views expressed here are my own opinions, so please take them with a pinch of salt! 🧂
as satisfying as this is, you're exposing a third argument that anyone can override. In a modern tech stack, this code is hesitantly admissible only if you can guarantee that absolutely no one can set length to be anything but end - start, otherwise you need to invest in a much more complex testing framework, likely outweighing the expense of adding a second line to this function.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Yes, excellent solution.
This, slimmed down, version also works...
const range = (start, end) => Array.from({length: end}, (_, i) => start + 1);
Sorry kerafyrm02, but that does not produce a range.
If I run range with range(1,50) I get [2,2,2,2,2,2,2,2,...]
const range = (start, end) => Array.from({length: end}, (_, i) => start + 1); console.log(range(0,20))
let r = (s, e) => Array.from('x'.repeat(e - s), (_, i) => s + i);
Ok here ya go... even shorter. :D
Rock, paper, scissors... 68 chars, you've nailed it!
lol., made
range
tor
.. so even shorter :DTrust me to bump into a js golfer.
Next you'll be telling me that you're dropping the let keyword and just leaving r on the global object!!
haha! nice solution John!
Well, thank you so much for saying!
Almost.
Try:
as satisfying as this is, you're exposing a third argument that anyone can override. In a modern tech stack, this code is hesitantly admissible only if you can guarantee that absolutely no one can set
length
to be anything butend - start
, otherwise you need to invest in a much more complex testing framework, likely outweighing the expense of adding a second line to this function.