Extending standard library of arrays

Dmitry A. Soshnikov dmitry.soshnikov at gmail.com
Sun Jul 10 13:46:02 PDT 2011


Here I put some extensions for arrays standard library (separated from 
this thread: 
https://mail.mozilla.org/pipermail/es-discuss/2011-July/015856.html 
where Array.of and Array.from were considered).

We can consider also the following (as a first step):

*- Array.prototype.remove(value, all)*

[1, 2, 3, 2].remove(2); // [1, 3, 2]
[1, 2, 3, 2].remove(2, true); // [1, 3]

(seems this function is required more than Array.of, because at least I 
saw it implemented in all frameworks and used it myself).

*- Array.prototype.subtract(array)*

[1, 2, 3, 4].subtract([2, 4]); // [1, 3]

*- Array.seq(from, to)* // or Array.range(from, to)

Array.seq(1, 5); // [1, 2, 3, 4, 5]

*- Array.build(n, fn)*

Array.build(5, function(index) index + 1); // [1, 2, 3, 4, 5]

*- Array.min(array), Array.max(array)* (can be implemented with 
Math.max/min and apply though)

Array.min = (array) -> Math.min.apply(Math, array)

*- Array.prototype.split(n)*

["a", "b", "c", "d", "e"].split(3) // [["a", "b", "c"], ["d", "e", "f"]]

Perhaps even to build objects from lists of keys and values (this 
function is usually called as `zip`):

*- Object.fromArrays(["a", "b", "c"], [1, 2, 3]);* // {a: 1, b: 2, c: 3}

*- Array.prototype.unique*

[1, 3, 2, 5, 5, 3].unique(); // [1, 3, 2, 5]

Thus, all names of methods can be discussed.

Dmitry.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20110711/a60705c4/attachment.html>


More information about the es-discuss mailing list