Thanks. The first `let` should be a `const`. On Dec 24, 2012, at 4:47 , Brandon Benvie <[email protected]> wrote:
> 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 > > -- 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

