Feature request: Array.prototype.random

Michael J. Ryan tracker1 at gmail.com
Tue Jun 20 23:11:29 UTC 2017


Just putting in my $.02

I'm thinking math-rnd-util as an npm module would be a place to start...
Then propose extending Math.rnd = rnd-util

Rnd.fill(array)
Rnd.pick(array)
Rnd.pick(min:int, max:int)
...

I suggest flushing things out in a usable npm module would be a good start.

-- 
Michael J. Ryan - tracker1 at gmail.com - http://tracker1.info

Please excuse grammar errors and typos, as this message was sent from my
phone.

On Jun 20, 2017 3:20 AM, "Henrik Sommerland" <henrik.sommerland at gmail.com>
wrote:

> 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
>>
>
>
> _______________________________________________
> 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/df32f212/attachment.html>


More information about the es-discuss mailing list