That is an excellent solution!
On Sun, Dec 23, 2012 at 10:46 PM, Axel Rauschmayer <[email protected]> wrote: > How about the following solution? > > let missingArgument = {}; // or a symbol > function reduce(callback, initial = missingArgument){ > let startIndex; > > if (initial === missingArgument) { > initial = this[0]; > startIndex = 1; > } else { > startIndex = 0; > } > > ...etc... > } > > On Dec 24, 2012, at 3:32 , Allen Wirfs-Brock <[email protected]> > wrote: > > On Dec 23, 2012, at 5:35 PM, Brandon Benvie wrote: > > Here's one of the examples that was sticking out in my mind earlier that > Brendan's solution takes care of. Array.prototype.reduce requires that if > the initial value isn't provided then the first value of the array is the > initial value. > > Using rest: > > function reduce(callback, ...initial){ > var current, index; > > if (initial.length) { > index = 0; > current = initial[0]; > } else { > index = 1; > current = this[0]; > } > > ...etc... > } > > > the way I would express this example is: > > function reduce(callback, ...rest){ > var current, index; > if (rest.length > 0) { > index = 0; > current = rest[0]; > } else { > index = 1; > current = this[0]; > } > ...etc... > } > > which seems to exactly express the intent > > > -- > Dr. Axel Rauschmayer > [email protected] > > home: rauschma.de > twitter: twitter.com/rauschma > blog: 2ality.com > >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

