Feature request: Array.prototype.random
Henrik Sommerland
henrik.sommerland at gmail.com
Tue Jun 20 10:20:29 UTC 2017
I agree that having a random integer function would be more suitable.
Picking a random element from an array is a fairly uncommon thing but
generating a random integer in a given range is something much more
desirable.
2017-06-20 11:33 GMT+02:00 Isiah Meadows <isiahmeadows at gmail.com>:
> Better idea: let's introduce an integer-based `Math.random` equivalent
> that can be optionally constrained to a specific range.
>
>
> ```js
> // Simple polyfill
> Math.randomInt = Math.randomInt || function (start, end) {
> if (arguments.length === 0) {
> start = 0; end = Number.MAX_SAFE_INTEGER
> } else if (arguments.length === 1) {
> end = start; start = 0
> }
> start = Math.max(Math.floor(start), -Number.MAX_SAFE_INTEGER)
> end = Math.min(Math.floor(end), Number.MAX_SAFE_INTEGER)
>
> return Math.floor(Math.random() * (end - start)) + start
> }
> ```
>
> You could then use it like this:
> `array[Math.randomInt(array.length)]`. I feel in this particular case,
> a more general solution is much more useful than just a "pick some
> random item in an array". (Number guessing games, anyone?)
> -----
>
> Isiah Meadows
> me at isiahmeadows.com
>
>
> On Thu, Jun 15, 2017 at 6:20 PM, William White <w.white9 at icloud.com>
> wrote:
> > And prng.pick(str), prng.pick(set) etc.?
> >
> > On 15 Jun 2017, at 22:34, Michał Wadas <michalwadas at gmail.com> wrote:
> >
> > I believe it's too specialized to be a part of Array interface.
> >
> > Though, I think JS should have better support for randomness, so we could
> > do:
> >
> > prng.pick(arr);
> > prng.sample(arr, 5);
> > prng.sampleWithoutRepetitions(arr, 4);
> >
> > On 15 Jun 2017 20:42, "Will White" <w.white9 at icloud.com> wrote:
> >
> > Dear es-discuss,
> >
> > I would like to propose Array.prototype.random, which would return a
> random
> > array element the same way `array[Math.floor(Math.random() *
> array.length)]`
> > does, because every time I want a random array element, I have to
> remember
> > how to do it. Do you think this is a useful addition to the language?
> >
> > Will White
> > _______________________________________________
> > es-discuss mailing list
> > es-discuss at mozilla.org
> > https://mail.mozilla.org/listinfo/es-discuss
> >
> >
> >
> > _______________________________________________
> > es-discuss mailing list
> > es-discuss at mozilla.org
> > https://mail.mozilla.org/listinfo/es-discuss
> >
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170620/72480f09/attachment.html>
More information about the es-discuss
mailing list