It doesn't work as well with larger collections.

Personally, it makes most sense in a standard library module

On Wed, Nov 21, 2018 at 00:43 Michael Luder-Rosefield <
rosyatran...@gmail.com> wrote:

> > Math.min() method doesn't work on Arrays right out of the box.
>
> No, but rest parameters work: Math.min(...arr) is fine, and works with
> Sets too.
>
>
>
> On Wed, 21 Nov 2018 at 14:08 Isiah Meadows <isiahmead...@gmail.com> wrote:
>
>> Not sure these belong in the standard library itself. I could see max and
>> min being there (these are very broadly useful), but the others, not so
>> much. I'd also like both max and min accept an optional comparison callback
>> of `(a, b) => a < b`. But the rest seem too narrowly useful IMHO.
>> On Tue, Nov 20, 2018 at 21:38 Gbadebo Bello <gbahdeybohbe...@gmail.com>
>> wrote:
>>
>>> The array object has no method for finding the minimum value of an array
>>> of numbers and the Math.min() method doesn't work on Arrays right out of
>>> the box. I'll have similar issues if i wanted to return the maximum number,
>>> the mean, mode,  median or standard deviations in any array of numbers.
>>>
>>> This is a bit tasky and can be done in just a line of code if there
>>> where Array.prototype.{method}() for it.
>>>
>>> My proposal is, Arrays should have the following prototypes
>>>
>>>    1. Array.prorotype.min()
>>>    2.  Array.prorotype.max()
>>>    3. Array.prorotype.mean()
>>>    4. Array.prorotype.median()
>>>    5. Array.prorotype.mode()
>>>    6. Array.prototype.stdev()
>>>
>>> The mean, median and mode would be very useful when visuali
>>> Here's is a polyfill of what i'll love to propose.
>>>
>>> //Array.prototype.min()
>>> Array.prototype.min = function(){
>>> let arrayVal = this;
>>> let checkNonNumbers = this.some(element => {
>>> if(typeof(element) !== typeof(Math.random())){
>>> throw new Error("This Array.prorotype.min() takes only array of numbers
>>> as arguments");
>>> }
>>> else{
>>> return true;
>>> }
>>> });
>>> function findMin(validated){
>>> if(validated == true){
>>> return Math.min.apply( Math, arrayVal );
>>> }
>>> }
>>> return findMin(checkNonNumbers);
>>> }
>>>
>>> Similarly, Array.prototype.max() can be implemented as above.
>>>
>>>
>>>
>>> //Array.prototype.median()
>>> Array.prototype.median = function(){
>>> let values = this;
>>> function median(values){
>>> values.sort(function(a,b){
>>> return a-b;
>>> });
>>> if(values.length ===0) return 0
>>> var half = Math.floor(values.length / 2);
>>> if (values.length % 2)
>>> return values[half];
>>> else
>>> return (values[half - 1] + values[half]) / 2.0;
>>> }
>>> return median(numbers)
>>> }
>>> _______________________________________________
>>> es-discuss mailing list
>>> es-discuss@mozilla.org
>>> https://mail.mozilla.org/listinfo/es-discuss
>>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to